在 Go 中将固定大小的数组转换为可变大小的数组(切片)
您正在尝试转换固定大小的数组 (使用以下命令将 [32]byte) 转换为可变大小的切片 ([]byte) code:
package main import ( "fmt" ) func main() { var a [32]byte b := []byte(a) fmt.Println(" %x", b) }
但是编译器返回错误:
./test.go:9: 无法将 a (type [32]byte) 转换为 type []byte
出现这个错误是因为 Go 中不允许直接将固定大小的数组转换为切片。要解决此问题,您应该使用切片运算符 ([:]) 在现有数组上获取切片:
var a [32]byte b := a[:]
这将创建一个引用数组中元素的切片 (b) (a )。切片将具有与原始数组相同的支持数组,但其长度和容量将动态调整。
要了解有关 Go 中数组和切片之间的差异的更多信息,请参阅这篇综合博客文章:
[Go 中的数组和切片](https://blog.golang.org/go-slices-usage-and-internals)
以上是如何在 Go 中将固定大小的数组转换为可变大小的切片?的详细内容。更多信息请关注PHP中文网其他相关文章!