【问题标题】:How to append byte to byte array in golang? Not byte array to byte array slices etc [duplicate]如何在golang中将字节附加到字节数组?不是字节数组到字节数组切片等[重复]
【发布时间】:2020-10-02 22:01:46
【问题描述】:
var a byte
var b []byte
i know how to do this
c := append(b,a...)

但是我该如何优雅地做到这一点呢?

c := append(a,b...) <-- what's the solution does anyone knows?

希望有 c[0] == a, c[1:] == b 用于下次检查

【问题讨论】:

  • 你不能在 Go 中追加到数组。数组是固定长度的。但是你没有数组,你有一个切片。
  • 除此之外,您所拥有的已经非常优雅了。您希望改进什么?

标签: go


【解决方案1】:

您可以将a 设为切片,然后将其附加到b

c := append([]byte{a}, b...)

【讨论】:

    【解决方案2】:

    你可以使用 bytes.Buffer 来让这个更干净:

    var a byte
    var buf bytes.Buffer
    
    buf.WriteByte(a)// For a single byte
    buf.Write([]byte{a})// For byte slice
    

    【讨论】:

    • 为什么选择 bytes.buffer?是慢了还是快了?
    • 它是一个方便的字节切片包装器,它还实现了几个接口,io.Reader、io.Writer 等等。当您需要附加大量值时,它是一个理想的选择,并且它还提供了将字节切片高效转换为字符串的方法。
    猜你喜欢
    • 2018-02-05
    • 2018-05-03
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    相关资源
    最近更新 更多