1.1 Go1的诺言

Go语言从2007年开始设计,2009年底正式开源,而第一个正式的版本Go1则是在2012年上半年发布。Go1的语法变迁主要从Go第一个正式版本开始,Go1是Go语言官方对整个社区的承诺:Go1之后的版本将保证源代码层面兼容。

从Go1的发布日志可以发现,Go1对语言和标准库做了严谨的梳理和完善,Go1的重大变化主要集中在语言和标准库部分。其中语言部分最大的变化是将原先的os.Error接口用内置的error接口类型替代、内置函数引入了close函数用于管道的关闭操作。此外,还对加强了initappend内置函数;增强了复合类型字面值的支持;针对Unicode字符增加了rune别名;改善了对map的遍历和删除元素操作;改进了影子返回值的报警提示;复制结构体时涵盖未导出的成员;明确了哪些类型可以进行相等性测试。同时对每个标准库的路径和功能进行详细的设计和完善。

经过多年的发展和普及,大家已经对Go1语言和标准库耳熟能详,对变更的细节就不详细展开了。但正是这次梳理工作才奠定了Go1之后高速发展的十年。