第 6 章 Go Toolset 1.23 中的更改


RHEL 在版本 1.23 中提供 Go Toolset。主要改进包括:

  • for-range 循环接受以下类型的迭代函数:

    • func(func() bool)
    • func(func(K) bool)
    • func(func (K, V) bool)

      调用迭代参数函数会为 for-range 循环创建迭代值。有关参考链接,请参阅 上游发行注记

  • Go Toolchain 可以收集使用情况和中断统计信息,以帮助 Go 团队了解 Go Toolchain 是如何使用和工作的。默认情况下,Go Telemetry 不会上传遥测数据,仅将其存储在本地。如需更多信息,请参阅 上游 Go Telemetry 文档
  • go vet 子命令包含 stdversion 分析器,它标记对在引用文件中使用的 Go 版本太新符号的引用。
  • cmdcgo 功能支持 -ldflags 选项,来将标记传递给 C 链接器。当您使用非常大的 CGO_LDFLAGS 环境变量时,go 命令会自动使用这个标志来避免 argument list too long 错误。
  • trace 工具容忍部分破坏的跟踪,并尝试恢复跟踪数据。这在崩溃时很有用,因为您可以获得导致崩溃的 trace。
  • 在未处理的 panic 或其他致命错误之后,运行时打印的回溯带有缩进,以区分来自第一个 goroutinegoroutine 的堆栈追踪。
  • 使用配置文件引导的优化的编译器构建时间开销降低到个位数百分比。
  • 新的 -bindnow 链接器标志在构建动态链接的 ELF 二进制时启用立即函数绑定。
  • //go:linkname 链接器指令不再引用标准库中的内部符号,以及没有对其定义标记为 //go:linkname 的运行时。
  • 如果程序不再引用 TimerTicker,则垃圾回收会立即清理它们,即使还没有调用它们的 Stop 方法。与 TimerTicker 关联的计时器渠道现在没有缓冲,容量为 0。这确保每次调用 ResetStop 方法时,在调用后不会发送或接收过时的值。
  • 新的 unique 软件包为规范化值(如 interninghash-consing)提供了工具。
  • 新的 iter 软件包提供了基本定义,以与用户定义的迭代器一起工作。
  • slicesmaps 软件包引入了几个与迭代器一起使用的新功能。
  • 新的 structs 软件包为修改包含 struct 类型的属性(如内存布局)的 struct 字段提供类型。
  • 在以下软件包中进行了次要更改:

    • archive/tar
    • crypto/tls
    • crypto/x509
    • database/sql
    • debug/elf
    • encoding/binary
    • go/ast
    • go/types
    • math/rand/v2
    • net
    • net/http
    • net/http/httptest
    • net/netips
    • path/filepath
    • reflect
    • runtime/debug
    • runtime/pprof
    • runtime/trace
    • slices
    • sync
    • sync/atomic
    • syscall
    • testing/fstest
    • text/template
    • time
    • unicode/utf16

如需更多信息,请参阅 上游发行注记

Go Toolset 是一个滚动应用程序流,红帽只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat