slice的底层结构是不是又变了?不是SliceHeader
了?
是变成unsafeheader.Slice
了吗?
看源码:https://github.com/golang/go/...
另:go官方github仓库是不能搜索代码吗?搜一下结果里面code
类别里面都是空的。
slice的底层结构是不是又变了?不是SliceHeader
了?
是变成unsafeheader.Slice
了吗?
看源码:https://github.com/golang/go/...
另:go官方github仓库是不能搜索代码吗?搜一下结果里面code
类别里面都是空的。
7 回答5.6k 阅读
6 回答7.1k 阅读✓ 已解决
4 回答2.5k 阅读
2 回答1.1k 阅读✓ 已解决
1 回答2.3k 阅读
2 回答1.1k 阅读
1 回答1.1k 阅读
是,1.20版本中被修改了,原有的
reflect.SliceHeader
和reflect.StringHeader
被弃用。如注释所说,新类型的指针是unsafe.Pointer
而非uintptr
,更安全,不会被GC回收。官方提供了三个新函数帮助完成字符串和切片数组的转化,
unsafe.SliceData
、unsafe.String
、unsafe.StringData
。详见:
Go 1.20 发行说明
unsafe:新增 StringData, String, SliceData