(相关资料图)

8月10日,谷歌发布了编程语言Go的全新1.21版本。此次更新的主要变化集中在工具链、运行时和库的实现。谷歌此前已经表示,Go语言将在1.21版本取消对旧版微软Windows和苹果macOS系统的支持。Go 1.21的主要更新内容包括:改进工具链,配置文件引导优化(PGO)功能正式进入稳定阶段。PGO的原理是“编译器使用程序的运行时profiling信息,因此能够生成更高质量的代码,从而提高程序的性能”。如果主软件包目录中存在名为default.pgo的文件,go命令将使用该default.pgo文件来启用PGO构建。在语言变更方面,Go 1.21添加了新的内置函数:min, max, clear,并对泛型函数的类型推断进行了多项改进。同时,开发团队计划在未来版本中解决Go编程中最常见的“循环变量捕获”问题,目前已经在Go 1.21中提供了“预览版”解决方案。此外,Go 1.21还添加了新的标准库,包括用于结构化日志记的log/slog包,用于对任何元素类型的切片进行常见操作的slices包,用于对任何类型key-value进行常见操作的maps包,以及用于比较有序值的cmp包。在性能优化方面,Go编译器本身已经在1.21就PGO进行了重建,因此构建Go程序的速度提高了2-4%,但具体的优化效率将取决于主机架构。最后,Go 1.21已实验性支持WebAssembly System Interface(WASI),并为了方便编写更通用的WebAssembly(WASM)代码,编译器还支持从WASM主机导入函数的新指令:go:wasmimport。

推荐内容