go - 访问嵌入式结构值时出现索引超出范围错误

标签 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

最佳答案

Ping 类型的

变量 p 及其字段/属性 Content 未初始化,因此当您访问 的内容时>Content 是一个 slice,它会抛出该错误。为什么?因为未初始化的 slice 的值为 nil。即 p.Content == []

关于go - 访问嵌入式结构值时出现索引超出范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26013400/

相关文章:

http - Go 客户端程序生成大量处于 TIME_WAIT 状态的套接字

运行时错误 : “assignment to entry in nil map”

go - 如何有效地将 channel 链接在一起?

go - 编译grpc时未定义: grpc. ClientConnInterface

go - 结构体方法的参数传递语义是否完全由方法而不是调用者决定?

linux - 父进程死亡时自动杀死子进程

Gorm - 通过迁移升级列约束

go - 将未更改的小写 header 添加到 golang http 请求

go - 有没有办法通过谷歌云语音记录添加业务特定的元数据与存储在谷歌云上的音频文件一起存储?

javascript - 无法将图像发送到 Go 服务器