在Go中将固定大小的数组转换为可变大小的数组

时间:2015-01-20 13:48:35

标签: arrays go type-conversion

我正在尝试将固定大小的数组[32]byte转换为可变大小的数组(切片)[]byte

package main

import (
        "fmt"
)

func main() {
        var a [32]byte
        b := []byte(a)
        fmt.Println(" %x", b)
}

但编译器抛出错误:

./test.go:9: cannot convert a (type [32]byte) to type []byte

我应该如何转换它?

2 个答案:

答案 0 :(得分:18)

使用b := a[:]获取您拥有的数组。有关数组和切片的详细信息,另请参阅this博客文章。

答案 1 :(得分:12)

Go中没有可变大小的数组,只有切片。如果你想获得整个数组的一部分,请执行以下操作:

b := a[:] // Same as b := a[0:len(a)]