访问嵌入式struct值时索引超出范围错误

时间:2014-09-24 09:31:39

标签: go

运行此代码时出现超出范围错误:

转到:

type Ping struct {
    Content []aContent
}

type aContent struct {
    Type        string
    Id          string
    Created_at  int64
}

var p Ping

func main() {

f := Ping{Content: []aContent{{Type: "Hello", Id: "asdf"}}}
fmt.Println(f)
fmt.Println(p.Content[0].Created_at) //what's wrong?
}

出了什么问题?代码可以在这里找到:http://play.golang.org/p/uZm5LaUuGW

1 个答案:

答案 0 :(得分:3)

p类型的变量Ping及其字段/属性Content未初始化,因此当您访问Content的内容时{{1}它会引发你的错误。为什么?因为未初始化的slice的值为slice。即nil