首页 > 后端开发 > Golang > 如何在不复制的情况下将 Go 切片转换为数组?

如何在不复制的情况下将 Go 切片转换为数组?

Susan Sarandon
发布: 2024-12-08 06:14:12
原创
786 人浏览过

How Can I Convert a Go Slice to an Array Without Copying?

将切片转换为数组

在 Go 中,可以通过使用技巧或 for 循环将切片转换为数组而不进行复制。

要使用这个技巧,请将数组作为切片传递给副本函数:

type Lead struct {
  Magic        [4]byte
  Major, Minor byte
  Type         uint16
  Arch         uint16
  Name         string
  OS           uint16
  SigType      uint16
}

lead := Lead{}
copy(lead.Magic[:], buffer[0:4])
登录后复制

或者,可以使用 for 循环:

for index, b := range buffer[0:4] {
    lead.Magic[index] = b
}
登录后复制

使用文字,可以将切片直接转换为数组:

type Lead struct {
  Magic        [4]byte
  Major, Minor byte
  Type         uint16
  Arch         uint16
  Name         string
  OS           uint16
  SigType      uint16
}

lead := Lead{
  Magic: [4]byte{'h', 'e', 'l', 'l'},
  ...
}
登录后复制

以上是如何在不复制的情况下将 Go 切片转换为数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板