Cer*_*món 13

这是一种方法:

h := (uint32)(((fh.year*100+fh.month)*100+fh.day)*100 + fh.h)
a := (*[4]byte)(unsafe.Pointer(&h))[:]

这是对正在发生的事情的细分.代码

(*[4]byte)(unsafe.Pointer(&h))

将uint32指针转换为[4]字节指针.该

[:]

最后在[4]字节上创建一个切片.

copy

不使用不安全的替代方法是使用encoding/binary包:

h := (uint32)(((fh.year*100+fh.month)*100+fh.day)*100 + fh.h)
a := make([]byte, 4)
binary.LittleEndian.PutUint32(a, h)