Go 1.26 发布

2026-02-10
5 min read
Anonymous

Carlos Amedee,代表 Go 团队

2026 年 2 月 10 日

今天 Go 团队很高兴地宣布 Go 1.26 正式发布。 你可以在下载页面找到二进制归档和安装程序。

语言变化

Go 1.26 引入了两个重要的语言语法和类型系统改进。

首先,内置函数 new(用于创建新变量)现在允许其操作数是一个表达式,用于指定变量的初始值。

一个简单的例子:以下代码:

x := int64(300)
ptr := &x

可以简化为:

ptr := new(int64(300))

其次,泛型类型现在可以在其自身的类型参数列表中引用自身。这一变化简化了复杂数据结构和接口的实现。

性能改进

之前处于实验阶段的 Green Tea 垃圾回收器 现在已默认启用。

cgo 开销 基线降低了约 30%。

编译器现在在更多情况下可以在栈上分配切片的后备存储,从而提升性能。

工具改进

go fix 命令已完全重写,基于 Go 分析框架,现在包含数十个"现代化工具"——即能安全修复代码的分析器,帮助你的代码利用语言和标准库的新特性。它还包含了 inline 分析器,它会尝试内联所有带有 //go:fix inline 指令的函数的调用。后续会有两篇博客文章详细介绍这些功能。

更多改进和变化

Go 1.26 在其工具运行时编译器链接器标准库方面引入了许多对 Go 1.25 的改进。其中包括新增三个包:crypto/hpkecrypto/mlkem/mlkemtesttesting/cryptotest。还有特定平台的变化和 GODEBUG 设置更新。

Go 1.26 中的一些新增功能仍处于实验阶段,只有在你明确选择启用时才会暴露。值得注意的有:

  • 实验性的 simd/archsimd 提供了对"单指令多数据"(SIMD)操作的访问。
  • 实验性的 runtime/secret 提供了一种安全擦除临时变量的工具,用于处理秘密信息(通常是加密性质的)的代码。
  • runtime/pprof 包中的实验性 goroutineleak 分析,用于报告泄露的 goroutine。

这些实验预计将在未来的 Go 版本中正式可用。我们鼓励你提前试用。我们非常重视你的反馈!

请参阅 Go 1.26 发行说明 获取新增内容、变化和改进的完整列表。

在接下来的几周内,后续博客文章将更详细地介绍与 Go 1.26 相关的一些主题。请稍后回来查看。

感谢所有通过编写代码、提交 bug、试用实验性功能、分享反馈以及测试候选版本而为这个版本做出贡献的人。你们的努力使 Go 1.26 尽可能地稳定。像往常一样,如果你发现任何问题,请提交 issue

希望你喜欢使用这个新版本!