2. 特性

2.1. 语法简单

  1. 语法规则严谨,没有黑魔法变异用法,任何人写出来的代码基本一致。
  2. ++**和**从运算符降级为语句,保留指针,但默认阻止指针运算。
  3. 切片和字典作为内置类型。

2.2. 并发模型

Goroutine是go最显著特征,它用类协程的方式来处理并发单元,却又在运行时层面做了深度优化处理。

2.3. 内存分配

go采用tcmalloc, 它本身就是为并发设计的高性能内存分配组件。

2.4. 垃圾回收

每次升级,垃圾回收器必然是核心组件里修改最多的部分,逐步引入三色标记和写屏障等等,都是为了能让垃圾 回收在不影响用户逻辑的情况下更好地工作。尽管有了努力,当前版本的垃圾回收算法也只能说堪用,离好用尚有不少距离。

2.5. 静态链接

Go 刚发布时,静态链接被当作优点宣传。只须编译后的一个可执行文件,无须附加任何东西就能部署。

2.6. 标准库

功能完善、质量可靠的标准库为编程语言提供了充足动力。

2.7. 工具链

完整的工具链对于日常开发极为重要。Go 在此做得相当不错,无论是编译、格式化、错误检查、帮助文档,还是第三方包下载、 更新都有对应的工具。其功能未必完善,但起码算得上简单易用。