【发布时间】:2020-07-26 13:11:48
【问题描述】:
我正在尝试将项目附加到我拥有的这个结构中:
type AuditSource struct {
Source map[string][]Pgm `json:"Source"`
}
type Pgm struct {
ID uint `json:"id,omitempty"`
SourceIP Inet `json:"sourceip,omitempty"`
MulticastPort int `json:"multicastport,omitempty"`
}
func NewAuditSource(lid string) (a *AuditSource) {
a = &AuditSource{
Id: make(map[string]uint64),
Source: make(map[string][]Pgm),
}
return
}
func (as *AuditSource) AuditSourceDifferences(a, b int) bool{
if a != b {
as.Source["Primary"][0].MulticastPort =a //ERRORS out every time
as.Source["Primary"][1].MulticastPort =b
}
return true
}
知道为什么每次我尝试添加一些东西时我的 struct map[string][]Pgm 都会出错吗?我可能需要初始化 []Pgm 吗?
【问题讨论】:
-
你能发布你看到的错误吗?除非您在其他地方初始化
a.Source["Primary"],否则a.Source["Primary"]将为 nil。 -
您作为错误突出显示的行正在尝试读取索引
0处的项目,该项目可能不存在,因为您尚未将任何内容附加到切片(这就是您实际向其添加内容的方式)。