如何将字节数组附加到go中的字节切片

How to append byte array to slice of bytes in Go

本问题已经有最佳答案,请猛点这里访问。

我有一个简单的代码,我试图理解,但我正在努力解决如何使它正常工作。

一般的想法是我要传递一些数据,并将其转换为字节数组。然后,我想在字节片的第一个索引处应用字节数组的长度,然后将字节数组添加到该片的末尾。

这就是它所尝试的:

1
2
3
4
5
6
7
8
9
    var slice []byte
    myString :="Hello there"

    stringAsByteArray := []byte(myString) //convert my string to byte array


    slice[0] = byte(len(stringAsByteArray)) //length of string as byte array

    append(slice, stringAsByteArray)

所以这个想法是slice的第一个字节包含len(b)的数量,然后从这个数字开始,实际的字符串消息是一系列字节。

但我得到:

1
2
cannot use stringAsByteArray (type []byte) as type byte in append
append(slice, stringAsByteArray) evaluated but not used


例如,

1
2
3
4
5
6
7
8
9
10
11
package main

import"fmt"

func main() {
    myString :="Hello there"
    slice := make([]byte, 1, 1+len(myString))
    slice[0] = byte(len(myString))
    slice = append(slice, myString...)
    fmt.Println(slice[0], string(slice[1:]))
}

输出:

1
11 Hello there


  • 首先,您需要用make函数初始化slice
  • 要向切片添加数据,应使用append函数
  • 要将元素从[]byte添加到[]byte中,可以在append调用中使用spread operator。
  • 最后需要使用调用append函数的结果
  • 网址:https://play.golang.org/p/cp18akksca