1GO语言介绍
Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点:
它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。
Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。
Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对象语言更轻量级。
Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。
Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。
要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。
GO语言历史参考百度百科——很有必要了解下GO的由来,为什么要有GO语言。
2学习方法
2.1系统学习法
GO语言都有什么关键字?func,go,chan,for,switch,select,string,int,var等
GO语言基础类型有哪些?intfloatstring等
GO语言代码编写风格?类C语言风格(func),类型定义反过来varnumint=0等
GO语言代码构造?包的概念package,外部包引入import等
GO语言提供什么容器?数组,slice,list,map,hash等
GO语言的独有特性?go协程routine,go的消息传递channel等
2.2对比学习法
C/C++提供的容器在go语言里面分别对应什么(数组,向量,链表,哈希等)
C/C++提供的STL算法在go语言里面有对应的么
在go语言里面怎么定义变量,有多少种方式?
在go语言里面怎么写循环(for),怎么遍历一个容器?
在go语言里面怎么写判断语句,怎么写方法定义,怎么写对象定义?
Go语言怎么写客户端和服务端开发,用的什么?编码方式和unixsocket有什么区别?
等等
3学习资料
(1)中文论坛: