Go1.23.0重磅发布,不少改进

程序员咋不秃头 2024-08-15 03:51:15

今晨,Go 团队的 Dmitri Shuralyov 代表团队发布了令人期待的 Go 1.23 版本。

Go 1.23 相较于 Go 1.22 有着诸多显著的改进。

在语言变化方面“for-range”循环中的范围表达式现在可以是迭代器函数,例如 func(func(K) bool),这支持了用户对任意序列自定义迭代器。同时,slices 和 maps 包新增了一些与迭代器配合使用的功能,还新增了一个 iter 包。比如可以轻松地将 map 的键收集到切片中并对其值进行排序。还包含了对泛型类型别名的预览支持。在工具改进方面Go 1.23 的工具链可以收集使用情况和故障统计数据,这是一个可选加入的系统即 Go 遥测技术,有助于团队了解工具链的使用方式和工作效果。go 命令新增了一些便利功能,如运行 go env -changed 能更方便地查看与默认值不同的有效设置,go mod tidy -diff 能在不修改文件的情况下确定对 go.mod 和 go.sum 文件所需的必要更改。go vet 子命令现在可以报告对于目标 Go 版本来说太新的符号。在标准库改进方面优化了 time.Timer 和 time.Ticker 的实现。新增了 3 个标准库包:iter(上文已提及)、structs(用于定义标记类型以修改结构体属性)以及 unique(提供规范化可比值的功能)。此外,标准库的许多其他部分也有大量的改进和补充。

除了以上主要方面,Go 1.23 还在其他领域有着突破:

增加了对 64 位 RISC-V 架构的 OpenBSD(openbsd/riscv64)的实验性支持,对 Linux、macOS、ARM64、RISC-V 和 WASI 也有一些小的改进。使用性能剖析导向优化(PGO)时的构建时间减少,386 和 amd64 架构上的 PGO 性能得到提升。

这里是完整的发布说明:https://go.dev/doc/go1.23。

Go 语言中文网为大家提供了最新版本的下载:https://studygolang.com/dl。

0 阅读:5