golang简介
type Student struct{
name string
age int}
student := Student{ "Bob", 12}
在上面的代码中,:= 运算符会要求golang检查变量 student 是否被定义过。如果没有被定义,golang会自动定义,并赋值;如果该变量已经定义,那么golang会报错提示该变量已经被定义过。
从上面代码中我们还可以看到几个其他的优点:行尾不需要结束符(如C/C++的“;”, erlang的 “,” 等);定义变量(或新类型)时类型在变量(或新类型)名称的后面,这样做的好处是让开发者更加关心变量(或新类型)本身,而无需太关心其类型,因为golang会帮你处理大部分类型问题,或通过类型检查,或通过类型推导。关于语法方面的其他优点,大家可以自行去体会。
2、高效
golang 程序拥有两种执行方式:解释执行和编译执行。解释执行通过例如go run test.go 的方式来执行 ,go 文件里的代码;编译执行类似于C/C++,直接将代码编译成可执行的二进制程序。因此,golang无论是在开发效率还是运行效率上,都有其独特的优势。相比C/C++,golang程序拥有更快的开发效率;相比erlang、java、python等,golang程序拥有更好的执行效率。
3、并发
和erlang一样,golang 天然支持并发处理。golang 语法中的 go 关键字即是创建一个并发的 golang 进程,与创建者进程共同处理任务。既然和erlang一样都是天然支持并发,那么我们比较下这两门语言的相似之处和特点:erlang:使用spawn函数创建新进程,进程之间利用进程的pid来进行通信,pid与进程一一对应,这种思想有点类似操作系统中进程pid的思想。golang:使用go 关键字创建新进程,进程之间利用channel进行通信,这种思想有点类似生产者、消费者的思想。
4、丰富
这里的丰富包含两方面:1)语言本身,综合了很多语言的特点,如:C/C++的指针、python的无需行结束符、erlang的并发等;2)类库丰富,除了golang的标准库能满足80%以上的需求外,社区还有很多开源的扩展库和框架。
5、活跃
由于谷歌的关系,以及云计算、docker的兴起,golang社区也保持不错的活跃度
转载请注明出处 http://blog.csdn.net/letian0805/article/details/51340768