
Go
文章平均质量分 75
sensus森森
强大自己是解决问题的最佳途径
展开
-
window系统下,GO开发时,如何修改GOPATH?
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。作原创 2017-12-09 16:00:30 · 47265 阅读 · 0 评论 -
谈一谈Go的切片Slice的使用方法
Slice切片本身并不是数组,它指向底层的数组 作为变长数组的替代方案,可以关联底层数组的局部或全部 为引用类型 可以直接创建或从底层数组获取生成 使用len()获取元素个数,cap()获取容量 一般使用make()创建 如果多个slice指向相同底层数组,其中一个的值改变会影响全部 make([]T, len, cap) 其中cap可以省略,则和len的值相同 len表示存数的元素个数,cap表原创 2017-12-12 16:40:33 · 2325 阅读 · 0 评论 -
谈一谈Go的结构体struct的使用方法
定义结构体package mainimport ( "fmt")type test struct {}func main() { a := test{} fmt.Println(a)}输出:{}package mainimport ( "fmt")//定义一个person结构,类似于在PHP定义了一个pers原创 2017-12-13 11:19:38 · 12575 阅读 · 1 评论 -
谈一谈Go的方法method的使用方法
Go 中虽没有class,但依旧有method通过显示说明receiver来实现与某个类型的组合只能为同一个包中的类型定义方法Receiver 可以是类型的值或者指针不存在方法重载可以使用值或指针来调用方法,编译器会自动完成转换从某种意义上来说,方法是函数的语法糖,因为receiver其实就是方法所接收的第1个参数(Method Value vs. Method Exp原创 2017-12-14 16:33:37 · 1919 阅读 · 0 评论 -
谈一谈Go的接口interface的使用方法
Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,简单的说,interface是一组method的组合,我们通过interface来定义对象的一组行为,任何其他类型只要实现了这些方法就是实现了这个接口,这也是Go最精妙的部分,它让面向对象,内容组织实现非常的方便。Go的接口和PHP的接口很像,关键都是interface。package mainimport (原创 2017-12-15 09:55:52 · 6915 阅读 · 2 评论 -
谈一谈Go的函数function的使用方法
函数是基本的代码块,用于执行一个任务。Go 语言最少有个 main() 函数。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型,和参数。Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数字,则返回数组中包含的函数个数。自定义函原创 2017-12-13 14:18:57 · 2228 阅读 · 0 评论 -
关于Go的闭包、匿名函数和defer的结合使用案例分析
Go里的“析构函数”defer关键字类似于PHP的__destruct(),用来标记最后执行的Go语句,一般用在资源释放、关闭连接等操作,会在函数关闭前调用。多个defer的定义与执行类似于栈的操作:先进后出,最先定义的最后执行。在defer的使用中,碰到过许多坑,尤其是在defer与匿名函数搭配使用的时候,厦门用一个案例分析下。package mainimport ( "fmt"原创 2017-12-13 11:33:02 · 1865 阅读 · 0 评论 -
谈一谈Go的异常处理机制——panic和recover的使用和原理
panic产生异常package mainimport ( "fmt")func main() { GO() PHP() PYTHON()}//Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很容易滥用异常,甚至一原创 2017-12-12 22:04:31 · 24395 阅读 · 18 评论 -
谈一谈Go的goto label、continue label、break label的用法和区别
与其他语言一样,Go语言也支持label(标签)语法:分别是break label和 goto label 、continue label这样使得编程时变得异常灵活,但是由于在大项目中不好控制,所以建议能不使用goto label就不要使用break label 和 goto label都能在循环中跳出循环,但是又有些不同之处。首先说下break label,break原创 2017-12-10 17:20:14 · 7403 阅读 · 1 评论 -
Go web开发初探
本人之前一直学习java、java web,最近开始学习Go语言,所以也想了解一下Go语言中web的开发方式以及运行机制。在《Go web编程》一书第三节中简要的提到了Go语言中http的运行方式,我这里是在这个的基础上更加详细的梳理一下。这里先提一句,本文中展示的源代码都是在Go安装目录下src/net/http/server.go文件中(除了自己写的实例程序),如果各位还想理解转载 2017-12-21 00:02:21 · 375 阅读 · 0 评论 -
谈一谈Go的Map的使用用法
写法一:package mainimport "fmt"func main() {var m1 map[int]int // 先声明mapm1 = make(map[int]int) //再使用make函数创建一个非nil的map,nil map不能赋值m1['a'] = 'a' // 最后给已声明的map赋值// m1["b"] = "b" //该写法不对,会报错 cannot原创 2017-12-12 16:14:04 · 525 阅读 · 0 评论 -
go的web编程
go的应用场景更多情况下应用于后台,也可以用于开发web。后台和web都是用到net和net/http模块,而开发web则还需要html/template模块。当然了实际使用中html/template虽然可以满足很多的要求,但是如果需要快速方便的开发,还可以使用web框架进行更加快捷的开发。这里推荐使用国人开发的beego框架。 注意,网页的函数不是使用驼峰规范转载 2017-12-20 23:32:54 · 410 阅读 · 0 评论 -
另类的Go语法
1,go的变量声明顺序是:”先写变量名,再写类型名“,此与C/C++的不同2,go是通过package来组织的(与python类似),只有package名为main的包可以包含main函数,一个可执行程序有且仅有一个main包,通过import关键字来导入其他非main包。3,可见性规则。go语言中,使用大小写来决定该常量、变量、类型、接口、结构或函数是否可以被外部包含调用。根据约定,函数名首字母...原创 2017-12-09 20:01:02 · 1038 阅读 · 0 评论