谷歌发布编程语言 Go 1.21:取消旧版 Windows 和 macOS 的支持

ZAKER科技   2023-08-11 05:17:41

IT 之家 8 月 10 日消息,谷歌于今天为编程语言 Go 发布了全新的 1.21 版本,该版本大部分变化集中在工具链、运行时和库的实现,谷歌此前表示,Go 语言将在 1.21 版本取消对旧版微软 Windows 和苹果 macOS 系统的支持。

▲ 谷歌编程语言 Go 1.21 版本发布日志

IT 之家附 Go 1.21 主要更新内容如下:


(资料图片仅供参考)

改进工具链

配置文件引导优化 (PGO)功能正式进入稳定阶段(GA)。

在 1.20 中处于预览阶段的启用配置文件引导优化 (PGO)功能现已正式进入稳定阶段,PGO 的原理是 " 编译器使用程序的运行时 profiling 信息,因此能够生成更高质量的代码,从而提高程序的性能 "。如果主软件包目录中存在名为 default.pgo 的文件,go 命令将使用该 default.pgo 文件来启用 PGO 构建。

语言变更

添加新的内置函数:

min, max, clear

对泛型函数的类型推断进行了多项改进,包括 " 扩展和解释清楚规范 " 中类型推断的描述。

在未来版本中,开发团队计划解决 Go 编程中最常见的 " 循环变量捕获 " 问题,开发团队目前已经在 Go 1.21 中提供了 " 预览版 " 解决方案,目前用户可以使用 " 环境变量 " 在代码中启用该功能。

添加新的标准库

log / slog 包:用于结构化日志记;

slices 包:增用于对任何元素类型的切片进行常见操作,这个包比 sort 包更快、更符合人体工程学;

maps 包:用于对任何类型 key-value 进行常见操作;

cmp 包:用于比较有序值 (ordered values)。

优化性能

Go 编译器本身已经在 1.21 就 PGO 进行了重建,因此当下构建 Go 程序的速度提高了 2-4%,不过官方表示,具体的优化效率将取决于主机架构。

支持 WASI

Go 1.21 已实验性支持 WebAssembly System Interface (WASI),Preview 1。

为了方便编写更通用的 WebAssembly (WASM)代码,编译器还支持从 WASM 主机导入函数的新指令:

go:wasmimport