Go v1.22.6 发版,建议升级至 macOS 11 Big Sur

TIOBE 编程语言 8 月榜单更新,Go 排行第 8,同比上升 3 位。

Go 1.21 系列已经发布一年,当前最新版本为 go1.21.13 (released 2024-08-06)。

Go 1.22 系列也已发布半年,当前最新版本为 go1.22.6 (released 2024-08-06)。

unsetunsetGo 1.22.0unsetunset

以下是 Go 1.22 的主要更新和改进:

1. 语言:
  • "for" 循环中声明的变量现在在每次迭代中都会创建新的变量,以避免意外的共享错误。

  • "for" 循环现在可以遍历整数。

    package main

    import (
    "fmt"
    "runtime"
    )

    func main() {
    fmt.Printf("Go version: %s\n", runtime.Version())

    复制代码
    for i := range 10 {
      fmt.Println(10 - i)
    }
    fmt.Println("go1.22 has lift-off!")

    }

输出:

复制代码
[shawnyan@rl9 mygo]$ go run main.go
Go version: go1.22.6
10
9
8
7
6
5
4
3
2
1
go1.22 has lift-off!
2. 工具:
  • 工作空间的命令可以使用包含依赖的 vendor 目录。
  • go get 不再支持在模块模式之外的遗留 GOPATH 模式 (GO111MODULE=off)。
  • go test -cover 现在会打印没有自己测试文件的覆盖包的覆盖摘要。
3. 运行时:
  • 运行时现在将基于类型的垃圾收集元数据更靠近每个堆对象,从而提高 Go 程序的 CPU 性能。
4. 编译器:
  • 使用 Profile-guided Optimization (PGO) 构建的程式,运行时性能可提高 2% 到 14%。
5. 链接器:
  • -s-w 标志现在在所有平台上的行为更加一致。
6. 标准库:
  • 新的 math/rand/v2 包。
  • 新的 go/version 包用于验证和比较 Go 版本字符串。
  • HTTP 路由模式现在更加丰富,支持方法和通配符。
7. 其他:
  • 各种库进行了小幅度的更新和性能改进。
8. 平台支持:
  • macOS:Go 1.22 是最后一个支持 macOS 10.15 Catalina 的版本。
  • ARM: GOARM 环境变量现在可以选择使用软件或硬件浮点。
  • Loong64:现在支持通过寄存器传递函数参数和结果。
  • OpenBSD:添加了对 OpenBSD 的实验性支持。

unsetunsetGo 1.22.x 小版本迭代unsetunset

  • go1.22.1(发布于 2024-03-05)包括对 crypto/x509、html/template、net/http、net/http/cookiejar 和 net/mail 包的安全修复,以及对编译器、go 命令、运行时、trace 命令以及 go/types 和 net/http 包的错误修复。
  • go1.22.2(发布于 2024-04-03)包括对 net/http 包的安全修复,以及对编译器、go 命令、链接器以及 encoding/gob、go/types、net/http 和运行时/trace 包的错误修复。
  • go1.22.3(发布于 2024-05-07)包括对 go 命令和 net 包的安全修复,以及对编译器、运行时和 net/http 包的错误修复。
  • go1.22.4(发布于 2024-06-04)包括对 archive/zip 和 net/netip 包的安全修复,以及对编译器、go 命令、链接器、运行时和 os 包的错误修复。
  • go1.22.5(发布于 2024-07-02)包括对 net/http 包的安全修复,以及对编译器、cgo、go 命令、链接器、运行时和 crypto/tls、go/types、net、net/http 和 os/exec 包的错误修复。
  • go1.22.6(发布于 2024-08-06)包含对 go 命令、编译器、链接器、trace 命令、covdata 命令以及 bytes、go/types 和 os/exec 包的修复。

unsetunsetmacOSunsetunset

需要注意的是:

Go 1.23 将需要 macOS 11 Big Sur 或更高版本。

如果你正在 macOS 上调试 Go 语言程序,建议升级到 macOS 11 及以上版本。

本文由mdnice多平台发布

相关推荐
DeepNoMind3 小时前
AI 智能体高可靠设计模式:代理装配线
程序人生
郝学胜-神的一滴8 小时前
深入理解Linux中的Try锁机制
linux·服务器·开发语言·c++·程序人生
一条咸鱼_SaltyFish8 小时前
[Day12] 合同审查引擎开发中的技术挑战与解决之道 contract-review-engine
开发语言·人工智能·程序人生·开源软件·ddd·个人开发·ai编程
郝学胜-神的一滴9 小时前
深入浅出:Python类变量与实例变量的核心差异与应用实践
开发语言·python·程序人生
坚持学习前端日记1 天前
个人小作坊适合的项目类型分析
程序人生·职场和发展·创业创新
天才测试猿1 天前
自动化测试基础知识总结
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
郝学胜-神的一滴1 天前
深入理解Mipmap:原理、实现与应用
c++·程序人生·unity·游戏程序·图形渲染·unreal engine
郝学胜-神的一滴1 天前
QStyleOption:Qt样式系统之魂
开发语言·c++·qt·程序人生
困惑阿三2 天前
2025 前端技术全景图:从“夯”到“拉”排行榜
前端·javascript·程序人生·react.js·vue·学习方法
龙中舞王2 天前
2026年 新的开始
程序人生