gpt4 book ai didi

go - 在 Go 中将数组转换为 slice

转载 作者:IT老高 更新时间:2023-10-28 12:58:34 25 4
gpt4 key购买 nike

这似乎是一个相当普遍的事情和互联网上的大量示例,但我似乎找不到如何将 [32]byte 转换为 的示例[]字节.

我有一个从返回数组的外部库调用的函数

func Foo() [32]byte {...}

然后我需要将该结果传递给不同的函数以进行进一步处理。

func Bar(b []byte) { ... }

很遗憾,如果我尝试打电话

d := Foo()
Bar(d)

我明白了

cannot convert d (type [32]byte) to type []byte

在做

[]byte(d)

也好不了多少。我该怎么做,尤其是在不创建数据副本的情况下(当我所做的只是传递数据时,复制这些数据似乎很愚蠢)。

最佳答案

这应该可行:

func Foo() [32]byte {
return [32]byte{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
}

func Bar(b []byte) {
fmt.Println(string(b))
}

func main() {
x := Foo()
Bar(x[:])
}

并且它不会创建底层缓冲区的副本

关于go - 在 Go 中将数组转换为 slice ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28886616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com