3

我已经定义了两种类型

type zFrame []byte
type zMsg []zFrame

我有变量

var message [][]byte

. Go 编译器告诉我

cannot use msg (type [][]byte) as type zMsg in function argument

当我尝试编译时

myZMsg := zMsg(message)

. 更改为

type zMsg [][]byte

使事情编译,但我更喜欢第一个解决方案。对于这种情况,我是否有一种简单的方法可以从[][]byteto转换zMsg为?

4

1 回答 1

4

您必须自己进行转换。例如,

package main

type zFrame []byte
type zMsg []zFrame

func main() {
    var message [][]byte
    myZMsg := make(zMsg, len(message))
    for i := range message {
        myZMsg[i] = zFrame(message[i])
    }
}
于 2013-03-27T01:12:03.133 回答