首页 >后端开发 >Golang >如何在 Go 中将固定大小的数组转换为可变大小的切片?

如何在 Go 中将固定大小的数组转换为可变大小的切片?

Susan Sarandon
Susan Sarandon原创
2024-11-08 11:39:02549浏览

How to Convert a Fixed-Size Array to a Variable-Sized Slice in Go?

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn