Go 1.19版本发布
go语言开发团队:2022 年 8 月 2 日发布 go1.19正式版本
今天,Go 团队很高兴发布 Go 1.19,您可以通过访问下载页面获得该版本。
go1.19版本下载:
https://go.dev/dl/
ps:有时候访问不了该页面,不怕,多访问几次就ok了
Go 1.19 改进并改进了我们今年早些时候发布的大规模 Go 1.18 。
我们将 Go 1.19 的泛型开发集中在解决社区向我们报告的微妙问题和极端情况,以及重要的性能改进(某些泛型程序高达 20%)。
文档注释现在支持链接、列表和更清晰的标题语法。
此更改有助于用户编写更清晰、更易于导航的文档注释,尤其是在具有大型 API 的包中。
作为此更改的一部分,gofmt现在重新格式化文档注释以将标准格式应用于这些功能的使用。
有关所有详细信息,请参阅“ Go Doc Comments ”。
https://go.dev/doc/comment
Go 的内存模型现在明确定义了sync/atomic 包的行为。
之前发生关系的正式定义已被修改,以与 C、C++、Java、JavaScript、Rust 和 Swift 使用的内存模型保持一致。
现有程序不受影响。
随着内存模型的更新, sync/atomic 包中还有新的类型,
例如atomic.Int64和atomic.Pointer[T],以便更容易使用原子值。
内存模型:
https://go.dev/ref/mem
sync/atomic包:
https://go.dev/pkg/sync/atomic/
出于安全原因, os/exec 包不再尊重 PATH 查找中的相对路径。
有关详细信息,请参阅软件包文档 。
golang.org/x/sys/execabs的现有用途,可以在仅使用 Go 1.19 或更高版本构建的程序中移回 os/exec。
垃圾收集器增加了对软内存限制的支持,在新的垃圾收集指南中有详细讨论。
该限制对于优化 Go 程序以在具有专用内存量的容器中尽可能高效地运行特别有用。
unix当目标操作系统 ( GOOS) 是任何类 Unix系统时,新的构建约束得到满足。
今天,类 Unix 意味着 Go 的所有目标操作系统,除了js、plan9、windows和zos.
最后,Go 1.19 包括各种性能和实现改进,
包括动态调整初始 goroutine 堆栈以减少堆栈复制、在大多数 Unix 系统上自动使用附加文件描述符、在 x86-64 和 ARM64 上用于大型 switch 语句的跳转表,
支持 ARM64 上的调试器注入函数调用,RISC-V 上的寄存器 ABI 支持,
以及在龙芯 64 位架构 LoongArch ( GOARCH=loong64) 上运行的 Linux 的实验性支持。
感谢所有通过编写代码、提交错误、分享反馈以及测试 beta 和候选版本为这个版本做出贡献的人。
您的努力有助于确保 Go 1.19 尽可能稳定。
与往常一样,如果您发现任何问题,请提出问题。
https://go.dev/issue/new
享受 Go 1.19!
相关文章