Проблема:
У меня есть карта структур в другой структуре, и я хотел бы инициализировать вложенную карту структур, но, очевидно, это невозможно.
Код:
type Exporter struct {
TopicsByName map[string]Topic
}
type Topic struct {
Name string
Partitions map[int32]Partition
}
type Partition struct {
PartitionID int32
HighWaterMark int64
}
// Eventually I want to do something like:
e := Exporter{ TopicsByName: make(map[string]Topic) }
for _, topicName := range topicNames {
// This does not work because "cannot assign to struct field e.TopicsByName[topicName].Partitions in map"
e.TopicsByName[topicName].Partitions = make(map[int32]Partition)
}
// I wanted to initialize all these maps so that I can do
e.TopicsByName[x.TopicName].Partitions[x.PartitionID] = Partition{...}
Я не понимаю, почему я не могу инициализировать вложенную структурную карту выше.Разве так плохо вкладывать карты со структурой в качестве значений?Как я могу это исправить?