【问题标题】:Golang: Slicing and populating byte arraysGolang:切片和填充字节数组
【发布时间】:2014-07-17 14:52:15
【问题描述】:

我正在尝试使用 golang 编写数据包协议。由于协议将具有固定长度,因此分配确切的内存量似乎是一个很好的起点。例如

packet := make([]byte, 1024)

我不明白如何填充该数据包的特定元素。我想说的是:-

slice = pointer(packet[512])
slice = []byte("abcdef")

结果是数据包[512:518] == []byte("abcdef")。我在 Arrays and Slices 上阅读的文档展示了如何修改切片中的单个字节,而不是修改连续的字节序列。有没有办法做到这一点?

【问题讨论】:

    标签: arrays go slice


    【解决方案1】:

    你不能这样做。我能说的最接近的方法是使用副本。检查:http://play.golang.org/p/PtGJuVgEjc

    【讨论】:

    • 你甚至不需要临时切片:copy(slice[512:], "abcde")
    • 这实际上正是我想要的。谢谢!
    猜你喜欢
    • 2021-10-29
    • 2016-09-15
    • 1970-01-01
    • 2018-02-05
    • 2020-10-02
    • 1970-01-01
    • 2015-05-26
    • 2015-04-08
    • 1970-01-01
    相关资源
    最近更新 更多