This question already has answers here:
Convert between slices of different types
(7个答案)
2年前关闭。
如何在不分配新的
还有(暂时拒绝)proposal golang/go issue 13656
问题是必须为某些C,T,v和n编写
编写整个表达式的更简单方法是理想的。
(7个答案)
2年前关闭。
如何在不分配新的
[]uint16
slice 的情况下将字节的 slice 转换为uint16
并反转。这个问题集中在性能和内存消耗上 最佳答案
考虑到converting = copying,除了两个特殊情况:m:=map[string]int{};m[string(bytes))
没有分配,与append类似。
Using unsafe.Pointer似乎是当前解决方法(顾名思义,“不安全”)
u16 := *(*uint16)(unsafe.Pointer(&byte_array[4]))
有一个proposal to use unsafe.Slice
instead。还有(暂时拒绝)proposal golang/go issue 13656
问题是必须为某些C,T,v和n编写
(*[C]T)(unsafe.Pointer(v))[:n:n]
。编写整个表达式的更简单方法是理想的。
var s []byte = C.AsSlice((*byte)(ptr), n)
关于go - 转换 slice 的字节而不复制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51346167/
10-15 20:53