Go 1.19 Beta1 发布,这个改动挺有意思

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

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

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

go install golang.org/dl/go1.19beta1@latest
go1.19beta1 download

e2567237f633f09db4b559a87600d003.png

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

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

5a3a6455aa2c77facda4095301b8b095.png

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。

往期推荐

资料下载

点击下方卡片关注公众号,发送特定关键字获取对应精品资料!

  • 回复「电子书」,获取入门、进阶 Go 语言必看书籍。

  • 回复「视频」,获取价值 5000 大洋的视频资料,内含实战项目(不外传)!

  • 回复「路线」,获取最新版 Go 知识图谱及学习、成长路线图。

  • 回复「面试题」,获取四哥精编的 Go 语言面试题,含解析。

  • 回复「后台」,获取后台开发必看 10 本书籍。

对了,看完文章,记得点击下方的卡片。关注我哦~ 👇👇👇

如果您的朋友也在学习 Go 语言,相信这篇文章对 TA 有帮助,欢迎转发分享给 TA,非常感谢!9bb48548eae3b9b94043f4a5374801b0.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值