golang学习第一篇 golang简介

golang简介

很久没写博客了,最近在学golang。为了总结学习经验,博客又派上用场了。

golang 是由谷歌的三位大牛发明并开源出来的,具体哪三位请大家自行搜索。
博主使用过这些计算机语言:C/C++、VB、C#、PHP、javascript、python、erlang。目前使用erlang从事即时通讯后台开发,期间也接触一些golang的开源项目。虽然很早就了解过golang,但没系统的学习过。
对比之前用过的计算机语言,golang有这些优点:

1、简单
golang里的变量可以不用定义而直接使用,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


你可能感兴趣的:(net,golang)