繁体   English   中英

字节切片部分拷贝

[英]Byte slice partial copy

我对 go 相当陌生,我正在尝试访问字节片的一部分并复制到另一个固定长度的字节片,但找不到合适的解决方案。

我最好的选择是:

var extracted []byte
var newSlice [512]byte = extracted[0 : 511]

但这给了我一个转换错误:

cannot use extracted[0:511] (value of type []byte) as [512]byte value in variable declarationcompilerIncompatibleAssign

笔记:

  • 这将在一个循环中一次迭代提取的 512 个字节的整个大小;
  • 提取实际上具有 512*n 字节的固定大小,但如果我修复该长度,我有同样的问题

我以为我可以使用 io.Reader 但这种方法也失败了。

欢迎任何帮助:)

这里有几种方法:

  • 将切片转换为数组指针并取消引用该指针:

     var pixels [512]byte pixels = *(*[512]byte)(extracted[:512])

    这可以使用简短的变量声明在一个语句中完成:

     pixels:= *(*[512]byte)(extracted[:512])
  • 使用内置副本function 将元素从切片复制到数组(问题评论中涵盖了这一点):

     var pixels [512]byte copy(pixels[:], extracted[:512])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM