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多平台发布

相关推荐
润 下5 分钟前
C语言——深入解析C语言指针:从基础到实践从入门到精通(二)
c语言·开发语言·经验分享·笔记·学习·程序人生
li星野18 小时前
打工人日报#20251010
笔记·程序人生·fpga开发·学习方法
郝学胜-神的一滴2 天前
Effective Python 第44条:用纯属性与修饰器取代旧式的 setter 与 getter 方法
开发语言·python·程序人生·软件工程
立志成为大牛的小牛2 天前
数据结构——十四、构造二叉树(王道408)
数据结构·笔记·学习·程序人生·考研
郝学胜-神的一滴3 天前
使用Linux的read和write系统函数操作文件
linux·服务器·开发语言·数据库·c++·程序人生·软件工程
郝学胜-神的一滴3 天前
Python中的鸭子类型:理解动态类型的力量
开发语言·python·程序人生·软件工程
li星野8 天前
打工人日报#20251005
笔记·程序人生·fpga开发·学习方法
li星野8 天前
打工人日报#20251002
笔记·程序人生·学习方法
郝学胜-神的一滴8 天前
Effective Python 第39条:通过@classmethod多态来构造同一体系中的各类对象
开发语言·python·程序人生·软件工程
知识分享小能手9 天前
微信小程序入门学习教程,从入门到精通,微信小程序开发进阶(7)
前端·javascript·学习·程序人生·微信小程序·小程序·vue3