在 Go 中将切片转换为数组
在尝试开发 RPM 文件读取器时,您可能会遇到需要将切片分配给结构体中的数组字段。这在 Go 中可能是一项棘手的任务,因为没有内置的直接转换方法。
要解决此限制,请考虑以下选项:
使用复制a Slice Pretense:
通过创建具有相同基础的临时切片,可以欺骗复制方法将切片复制到数组array 作为目标数组。
varLead := Lead{} magicSlice := someSlice[0:4] // Create a temporary slice that references the array underlying the array field copy(varLead.Magic[:], magicSlice)
基于手动循环的分配:
或者,您可以循环切片并手动将每个元素分配给相应的数组元素。
for index, b := range someSlice { varLead.Magic[index] = b }
文字转换:
如果数组大小固定,可以直接使用字面值初始化数组
type Lead struct { Magic [4]byte // Other fields... } lead := Lead{ Magic: [4]byte{0x12, 0x34, 0x56, 0x78}, }
以上是在 Go 中如何将切片转换为数组?的详细内容。更多信息请关注PHP中文网其他相关文章!