阅读本文大概需要 2 分钟。
大家好,我是站长 polarisxu。
不要怀疑,为什么没见到 RC1,直接 RC2 了?因为打完 go1.21rc1 后发现了一个 bug,然后修复了,所以直接发布 RC2。(实际上 go 仓库是能看到 RC1 tag 的)
Go 1.21 包含了许多新功能和改进。获取 RC (发布候选版本) 可以让你提前尝试它,用它来处理你的工作,并在最终发布之前 (预定于 8 月) 报告任何问题。以下是 Go 1.21 的一些值得注意的变化和功能;完整的列表,请参考完整的发布说明[1]。
我们在 1.20 中预览的配置文件引导优化 (PGO) 功能现在已经可用!如果主包的目录中存在一个名为 default.pgo 的文件,go 命令将使用它来启用 PGO 构建。更多细节请参考 PGO 文档[2]。我们已经测试了 PGO 对一系列 Go 程序的影响,看到了 2-7% 的性能提升。
go 工具现在支持向后和向前的语言兼容性。
除了启用 PGO 时的性能提升:
Go 1.21 添加了一个实验性端口,用于 WebAssembly System Interface (WASI),Preview 1 (GOOS=wasip1, GOARCH=wasm)。
为了方便编写更通用的 WebAssembly (WASM) 代码,编译器还支持了一种新的指令,用于从 WASM 主机导入函数:go:wasmimport。
因为是预览版本,建议采用官方推荐的方式安装试用。
请参考完整的发布说明: https://tip.golang.org/doc/go1.21
[2]参考 PGO 文档: https://go.dev/doc/pgo
[3]规范中对类型推断的描述已经扩展和澄清: https://tip.golang.org/ref/spec#Type_inference
[4]循环变量捕获: https://go.dev/wiki/CommonMistakes
[5]LoopvarExperiment wiki: https://go.dev/wiki/LoopvarExperiment
我是 polarisxu,北大硕士毕业,曾在 360 等知名互联网公司工作,10多年技术研发与架构经验!2012 年接触 Go 语言并创建了 Go 语言中文网!著有《Go语言编程之旅》、开源图书《Go语言标准库》等。
坚持输出技术(包括 Go、Rust 等技术)、职场心得和创业感悟!欢迎关注「polarisxu」一起成长!也欢迎加我微信好友交流:gopherstudio