Go 1.2 正式发布
Andrew Gerrand
2013 年 12 月 1 日
我们很高兴宣布 Go 1.2 的发布, 这是 Go 编程程序的最新文档版本.
二进制发行版可以从 这里 下载, 或者如果你愿意可以 从源代码编译, 应该使用 release
或 go1.2
标签.
新版本发布于 5 月份 Go 1.1 发布将近七个月, 比 1.1 和 1.0 之间的14个月要短得多. 我们预计未来的主要版本之间会有类似的间隔时间.
Go 1.2 包括一些小的语言更改, 对语言实现和工具的一些改进, 一些性能的改进以及许多添加和 (向后兼容) 更改到标准库.
请阅读 发行说明 了解所有详细信息, 因为某些更改可能会影响现有程序的行为. 以下是该版本的重点内容.
新的 三点式切片语法 增加了指定容量和长度的功能. 这使程序员可以传递只能访问基础数组的有限部分的分片值, 该技术以前要求使用不安全的程序包.
工具链的主要新功能是可以计算和显示 测试覆盖率结果. 请参阅 go test
和 [cover工具](godoc.org/code.google.com/p/ go.tools/cmd/cover/) 文档以获取详细信息. 本周晚些时候, 我们将发布一篇文章, 详细讨论此新功能.
现在可以通过 抢先调度, 因为调度程序在输入函数时偶尔会被调用. 这样可以防止繁忙的 goroutine 饿死同一线程上的其他 goroutine.
增加默认的 goroutine 堆栈大小应该可以提高某些程序的性能. (旧的大小倾向于在性能关键的部分中引入昂贵的堆栈段切换.) 另一方面, 对 堆栈大小 和 操作系统线程数应该防止行为不当的程序占用计算机的所有资源. (可以使用 runtime/debug
程序包 中的新功能来调整这些限制.)
最后, 在 对标准库的许多更改 中, 重大更改包括新的 encoding
程序包, 索引参数 (Printf
格式字符串和一些 为了便于使用添加的内容) 到模板包.
作为版本的一部分, Go Playground 已更新为Go 1.2. 这也会影响使用 Playground 的服务, 例如 Go Tour 和此博客. 该更新还增加了在沙箱内使用线程和 os
, net
和 unsafe
软件包的功能, 使其更像真实的 Go 环境.
对于帮助使该版本成为可能的每个人, 从提交错误报告的许多用户到对核心做出 1600 多个更改的116(!)个贡献者: 您的帮助对于项目来说是无价的. 谢谢!
此文章是 Go Advent Calendar 中的第一篇, 从 12 月 1 日至 25 日 Gopher Academy 系列每天会发布一篇
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: