乐趣区

关于golang:Go-117-正式发布

新版本的编译器采纳了一种新的函数参数和后果传递形式。官网称此次改良将 Go 程序的性能晋升了大概 5%,并将 amd64 平台的二进制包大小缩小了大概 2%,将来还打算反对更多平台。

新版本减少了对 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
退出移动版