Go 1.19 Beta1 发布,这个改动挺有意思
2022-6-12 22:30:29 Author: mp.weixin.qq.com(查看原文) 阅读量:155 收藏

阅读本文大概需要 5 分钟。

大家好,我是 polarisxu。

近日,Go1.19 进入了冻结状态,即不接受新功能,同时发布了 Go1.19 Beta1 版本。

试用 Go1.19 Beta1 最好的方式是通过以下命令安装:

go install golang.org/dl/[email protected]
go1.19beta1 download

相比 Go1.18,Go1.19 的新特性比较少,有以下几个点值得关注:

1)Doc Comments,这个在今年年初就有开始设计,主要提供了一些更友好的样式支持。完整的设计文档见:https://github.com/golang/proposal/blob/master/design/51082-godocfmt.md。比如简单的链接样式:

2)泛型相关问题、改进:https://github.com/golang/go/issues?q=is%3Aissue+label%3Agenerics+milestone%3AGo1.19+is%3Aopen

3)Runtime 的一些变化,比如内存限制 runtime/debug.SetMemoryLimit,几个新的 runtime metric 等,此外,有一个比较有意思的改动:runtime 现在将根据 goroutine 的历史平均堆栈使用情况分配初始 goroutine 堆栈。这避免了在平均情况下需要的一些早期堆栈增长和复制,以换取在低于平均水平的 goroutine 上最多浪费 2 倍的空间。也就是说,goroutine 的栈使用情况会根据实际使用情况做调整,相关改动:https://github.com/golang/go/commit/016d7552138077741a9c3fdadc73c0179f5d3ff7。

4)默认提高文件描述符打开数限制,具体可以参考:https://github.com/golang/go/issues/46279

5)内存模型做了更新:https://tip.golang.org/ref/mem,使得 Go 与 C、C++、Java、JavaScript、Rust、Swift 等语言使用的内存模型保持一致。

更多详细的变化可以参考 Go1.19 的 Release Notes:https://tip.golang.org/doc/go1.19。

另外,目前 Go1.19 还有 200 Open 状态的 issue 没有解决:https://github.com/golang/go/milestone/224。


往期推荐

我是 polarisxu,北大硕士毕业,曾在 360 等知名互联网公司工作,10多年技术研发与架构经验!2012 年接触 Go 语言并创建了 Go 语言中文网!著有《Go语言编程之旅》、开源图书《Go语言标准库》等。

坚持输出技术(包括 Go、Rust 等技术)、职场心得和创业感悟!欢迎关注「polarisxu」一起成长!也欢迎加我微信好友交流:gopherstudio


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxNzY0NDE3NA==&mid=2247490064&idx=1&sn=f748c11bc5ffca043b2b1d2a09eaae2d&chksm=9be335f1ac94bce7023aa6d54f538e36d9d4e4047ae4dea08699184f7e43fbea517aadf2a8c5#rd
如有侵权请联系:admin#unsafe.sh