如何将切片分配给结构中的切片?

时间:2019-12-04 07:06:48

标签: go

type Node struct {
    Stat *Stat
}


type Stat struct {
    StatInfo []string
}

然后

node := new(Node)
node.Stat.Statinfo=strings.Split(somestr," ")

结果是:

紧急:运行时错误:无效的内存地址或nil指针取消引用

1 个答案:

答案 0 :(得分:5)

创建结构时,其字段默认为对应类型的the zero value0int,指针字段是nil,等等。

在您的情况下,唯一字段Stat是一个指针,调用new(Node)后,node.Statnil,因此会导致您看到运行时错误。

为避免错误,请确保在访问字段之前先对其进行初始化。