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

时间:2017-11-20 07:13:22

标签: arrays go slice

我想了解一些简单的代码,但我正在努力弄清楚如何让它正常工作。

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

这就是它的尝试:

    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)的数字,然后继续它,实际的字符串消息为一系列字节。

但我明白了:

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

2 个答案:

答案 0 :(得分:1)

例如,

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:]))
}

输出:

11 Hello there

答案 1 :(得分:0)

  1. 首先,您需要使用make函数
  2. 初始化切片
  3. 要将数据添加到切片,您应使用append功能
  4. 要将[]byte中的元素添加到[]byte,您可以在append调用中使用展开运算符。
  5. 最后你需要使用调用append函数
  6. 的结果

    https://play.golang.org/p/CP18akKsCa