Go 1.19 正式发布

8月2日 Go语言1.19正式发布,具体更新如下:

Go 1.19完善并改进了Go 1.18。我们将Go 1.19泛型开发的重点放在解决社区向我们报告的微妙问题和极端案例,以及重要的性能改进(一些泛型程序的性能提高了20%)。文档注释现在支持链接、列表和更清晰的标题语法。这一变化有助于用户编写更清晰、更可导航的文档注释,尤其是在具有大型API的包中。作为此更改的一部分,gofmt现在重新格式化文档注释,以将标准格式应用于这些功能的使用。Go的内存模型现在明确定义了sync/atomic包的行为。happens-before关系的形式化定义已经修改,以与C、C++、Java、JavaScript、Rust和Swift使用的内存模型保持一致。现有程序不受影响。随着内存模型的更新,sync/atomic包中也出现了新的类型,例如atomic.Int64 和 atomic.Pointer[T],使atomic values更容易使用。出于安全原因,os/exec包在路径查找中不再考虑相对路径。有关详细信息,请参阅软件包文档。golang.org/x/sys/execabs 的现有用途可以在仅使用 Go 1.19 或更高版本构建的程序中移回 os/exec。垃圾收集器增加了对软内存限制的支持,在新的垃圾收集指南中有详细讨论。该限制对于优化 Go 程序以在具有专用内存量的容器中尽可能高效地运行特别有用。当目标操作系统(GOOS)是任何类 Unix 系统时,新的构建约束 unix 就得到满足。如今,类 Unix 是指所有 Go 的目标操作系统,除了 js、plan9、windows 和 zos。此外,Go 1.19 还包括了各种性能和实现改进,包括动态调整初始 goroutine 堆栈以减少堆栈复制、在大多数 Unix 系统上自动使用附加文件描述符、在 x86-64 和 ARM64 上用于大型 switch 语句的跳转表,支持 ARM64 上的调试器注入函数调用,RISC-V 上的 register ABI 支持,以及在龙芯 64 位架构 LoongArch ( GOARCH=loong64) 上运行的 Linux 的实验性支持。原文链接:

https://go.dev/blog/go1.19

相关文章

所以很多人都会选择将这些生活琐事来交给智能化产品,在众多...
“昨天的经历都将成为明天的力量。” 将绝大部分精力都奉献给...
最近,全球知名的通信产业盛会MWC 2024(2024世界移动通信大...
今年上半年有很多值得关注的机型,其中华为最新的影像旗舰华...
目前,2024世界移动通信大会(MWC)正在西班牙巴塞罗那举行,值...
就在去年,真我推出了11 Pro+,用一个2亿像素传感器和zoom变...