Go 1.17 预计将于 2021 年 8 月发布

Go 1.17 包括对该语言的三个小改进:

  • 实现从切片到数组指针的转换:如果s的类型是[]T,那么现在这种类型可以将其转换为数组指针类型 *[N]T。如果a是转换后的变量,则范围内的相应索引引用的元素相同:0 <= i < N的情况下 &a[i] == &s[i]  。如果len(s)小于N,则转换会发生panic。

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

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

image.png