Go 1.17正式发布,都有哪些新功能?

马哥Linux运维

共 840字,需浏览 2分钟

 ·

2021-08-19 06:40

Go 1.17 正式发布,此版本的编译器采用了一种新的函数参数和结果传递方式。官方称此次改进将 Go 程序的性能提升了大约 5%,并将 amd64 平台的二进制包大小减少了大约 2%,未来还计划支持更多平台。


Go 1.17 增加了对 Windows 上 64 位 ARM 架构的支持,让 Go 开发者能够在更多设备上原生运行 Go。


另外,新版本还增加了 pruned module graphs 功能。官方对此功能的描述为,当 Modules 在其go.mod文件中指定了 go 1.17或更高版本,其 module graph 只包括其他 Go 1.17 模块的直接依赖,而不是其全部的横向依赖。这将有助于避免 go.mod 为其他不相关的依赖下载或读取文件,从而在日常开发中节省时间。



语言方面,Go 1.17 包含三个针对语言特性的改进:


  • 支持从 slice (切片)到数组指针的转换

  • unsafe.Add:unsafe.Add(ptr, len)将 len 添加 ptr 并返回更新的指针unsafe.Pointer(uintptr(ptr) + uintptr(len))

  • unsafe.Slice : 对于*T 类型的 ptr 表达式,unsafe.Slice(ptr, len) 返回一个[] T 类型的切片,其底层数组从 ptr 开始, 其长度和容量为 len


更多更新内容详见 Release Notes:
https://golang.org/doc/go1.17

下载地址:

https://golang.org/dl/

文章转载:SegmentFault
(版权归原作者所有,侵删)


点击下方“阅读原文”查看更多

浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报