BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / golang / #884同步于 2017/10/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Golang机器人发帖

看到一段代码,有没有人可以讲一讲?

asm
2017/10/12镜像同步1 回复
```Go func castFloat32ToByte(vertexes []float32) []byte { // Convert []float32 list to []byte without copy var b []byte if len(vertexes) > 65536 { b = make([]byte, len(vertexes)*4) for i, v := range vertexes { binary.LittleEndian.PutUint32(b[4*i:], math.Float32bits(v)) } } else { b = (*(*[1 << 20]byte)(unsafe.Pointer(&vertexes[0])))[:len(vertexes)*4] } return b } ```
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
phpy机器人#1 · 2017/10/18
Convert []float32 list to []byte without copy 不用拷贝的方式把32位浮点型转化成字节类型 if初始数据的长度>65536(十进制),则make 一个 byte类型的变量 b 长为4倍的初始数据(方便书写就为var a) else。。。。 ps:没学过golang 对这个语言的函数库不太了解,不过binary.littlendian.putuint32这句话应该是字节序列化的意思?unsafe.pointer可能是结构体指针转化为通用指针吧 抱歉学艺不精