首页 > 解决方案 > 如何将字节数组传递给接受字节切片的函数?

问题描述

可以说我有一个

Type T [64]byte

我想使用“crypto/rand”包用随机字节填充 T 类型的对象。

T obj
rand.Read(obj)

显然这不起作用所以我该怎么做。我认为顶部的类型声明相当于 C++ 中的 typedef。

标签: gotypesarguments

解决方案


正如 JimB 所指出的,您正在尝试将 a 传递[64]byte给采用 a 的函数[]byte,而这些类型并不等效。您可以在整个数组上传递一个切片,它工作正常:

rand.Read(obj[:])

工作示例: https: //play.golang.org/p/eARFfn4bDzQ

这在Tour of Go中有介绍。


推荐阅读