主要观点总结
Go 团队发布了 Go 1.23.0 版本,包含语言变更、工具改进、标准库改进等内容。
关键观点总结
关键观点1: 语言层面的变更
Go 1.23.0 发布了 for-range 循环的新功能,现在可以接受迭代函数作为范围表达式。增加了几个迭代器,包括新的 iter 包,支持用户在任意序列上定义迭代器。
关键观点2: 工具改进
Go 工具链添加了 Go telemetry,可以收集使用和损坏统计信息以帮助了解工具的使用情况和运行状况。同时,go 命令具有新的便利性,如 go env -changed 和 go mod tidy -diff 等新子命令。go vet 子命令现在可以报告对于目标 Go 版本来说太新的符号。
关键观点3: 标准库改进
Go 1.23 改进了 time.Timer 和 time.Ticker 的实现。新增了三个软件包:iter、structs 和 unique。其中,iter 包主要为迭代器服务,structs 包定义了用于修改 struct 属性的标记类型,而 unique 包则提供了对可比值进行规范化(“interning”)的工具。
文章预览
北京时间 2024 年 8 月 14 日凌晨 1 点 03 分,Go 团队发布了 Go 1.23.0。 如果你已经安装了 Go,可以通过下面的方式安装试用 go1.23.0。 Go 1.23 发布了以下 更新: ① 语言层面的变更 for-range 循环中的范围表达式现在可以是迭代函数,例如 func(func(K) bool) 。这支持用户在任意序列上定义迭代器。在标准的 slices 和 maps 包中增加了几个迭代器,以及一个新的 iter 包。举例来说,如果您希望将 map m 的键值收集到一个切片中,然后对其值进行排序,您可以在 Go 1.23 中使用 slices.Sorted(maps.Keys(m)) 来实现。 func ( func () bool ) func ( func (K) bool ) func ( func (K, V) bool ) 想要了解更多,可以查看文档: https://go.dev/ref/spec#For_range ② 工具改进 1. 从 Go 1.23 开始,Go 工具链可以收集使用和损坏统计信息,以帮助了解 Go 工具链的使用情况和运行状况。这就是 Go telemetry,一个 op
………………………………