如何转换为嵌套类型

时间:2013-03-27 00:07:12

标签: go

我已经定义了两种类型

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

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

1 个答案:

答案 0 :(得分: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])
    }
}