Go语言:强类型 2009年,“云计算时代的C语言”
Go语言核心特性
- 并发编程:
-
在并发编程方面简洁不少 -
golang的并发执行单元是一种称为goroutine的协程
- 内存回收:
-
自动回收,无需管理 -
只需new,不用释放
- 内存分配:
-
先分配一块大内存区域 -
大内存切分为各个大小等级的块,放入不同的空闲list中 -
对象分配空间时,从list中取出大小合适的块 -
内存回收时,把不用的内存重放回空闲的list -
空闲内存会按照一定策略合并,减少碎片
- 编译
-
两种编译器 -
建立在GCC上的Gccgo -
针对64位×64和32位×86计算机的一套编译器(6g和8g)
- 网络编程
-
多接口
- 函数多返回值
-
允许函数返回多个值
- 语言交互性
-
调用其他语言的库 -
可以和c程序交互
- 异常处理
-
三个关键字defer、panic、recover -
defer是函数结束后执行,呈先进后出 -
panic是程序出现无法修复的错误时使用,会让defer执行完 -
recover会修复错误,不至于程序终止。不确定函数不会出错时使用defer+recover
- 其他
-
类型推导 -
接口interface -
defer机制 -
“包”的概念 -
交叉编译
Go语言优势
-
学习曲线容易 -
快速的编译实践,开发和运行效率高 -
并行和异步编程 -
自由高效:组合的思想、无侵入式的接口 -
强大的标准库 -
部署方便:二进制文件、Copy部署 -
稳定性