主要观点:Go 1.23 发布,介绍其新特性,包括迭代器、定时器变化、规范值、HTTP cookies、复制目录、切片、原子操作、恐慌回溯、遥测等,还提及相关提案和提交,以及一个基于 codapi 的交互式代码示例工具。
关键信息:
- 迭代器:Go 1.23 带来多种与序列迭代相关的特性,如在 for-range 循环中使用迭代器、定义新的迭代器类型
Seq
和Seq2
、将推送迭代器转换为拉取迭代器、slices
和maps
包中的切片和映射迭代器函数等。 - 定时器变化:对
time.Timer
和time.Ticker
的实现进行了两项重要更改,一是垃圾回收,二是停止/重置行为,新行为仅在go.mod
指定版本 1.23 或更高时启用。 - 规范值:
unique
包提供规范化值的功能,可减少内存占用,Make
函数创建值的规范副本Handle
。 - HTTP cookies:
http
包中关于 cookie 处理的一些变化,如ParseCookie
和ParseSetCookie
函数、Request.CookiesNamed
方法等。 - 复制目录:
os.CopyFS
函数可递归复制文件和目录。 - 切片:
slices.Repeat
函数可重复给定切片。 - 原子操作:
And
和Or
运算符可对输入进行按位与或操作并返回旧值。 - 恐慌回溯:运行时打印的回溯信息在 1.23 版本中对错误消息的第二及后续行进行了缩进。
- 遥测:Go 工具链可收集遥测数据,默认仅在本地文件中收集,通过
go telemetry
命令控制。
重要细节: - 迭代器相关的提案和提交:61405、61897等,相关提交557835等。
- 定时器相关的提案和提交:61542、37196等,相关提交512355等。
- 规范值相关的提案和提交:62483、574355等。
- HTTP cookies 相关的提案和提交:66008、62490等,相关提交578275等。
- 复制目录相关的提案和提交:62484、558995等。
- 切片相关的提案和提交:65238、571895等。
- 原子操作相关的提案和提交:61395、544455等。
- 交互式代码示例工具:由 codapi 提供,可嵌入到产品文档等中,可通过★ Subscribe订阅获取新内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。