Значением по умолчанию для среза является nil
, поэтому у него нет элементов, и вы не можете назначить индексу 0, поскольку он еще не существует.
Вы можете использовать append, чтобы добавить новый элемент в этот фрагмент, используя:
l.Labels = append(l.Labels, struct{
ID int
Name string
}{
ID: 200,
Name: "me",
})
https://play.golang.org/p/uAWdQdh0Ov7
Кроме того, использование здесь встроенной / анонимной структуры означает, что вам нужно будет повторно объявить тип, когда вы append
. Попробуйте добавить еще один объявленный тип:
type SubLabel struct {
ID int
Name string
}
type Label struct {
ID int
Labels []SubLabel
}
// ...
l.Labels = append(l.Labels, SubLabel{
ID: 200,
Name: "me",
})
https://play.golang.org/p/4idibGH6Wzd