3 回答
TA贡献1895条经验 获得超3个赞
无法分配给映射值中的字段。解决方法是将结构值分配给映射值:
for _, topicName := range []string{"a"} { e.TopicsByName[topicName] = Topic{Partitions: make(map[int32]Partition)} }
TA贡献1824条经验 获得超8个赞
您可以像预期的那样初始化它:
e := Exporter{
TopicsByName: map[string]Topic{
"my-topic": Topic{
Name: "my-topic",
Partitions: map[int32]Partition{
int32(1): Partition{
PartitionID: int32(1),
HighWaterMark: int64(199),
},
},
},
},
}
这不是直接回答问题,因为您想遍历主题列表,但如果在 kafka 测试中使用它,我强烈建议使用上面更详细/文字的格式。
https://play.golang.org/p/zm3A7CIvbyu
TA贡献1780条经验 获得超3个赞
如果您知道初始值。为什么不这样做
val := `
{
"topics_by_name": {
"name1": {
"name":"topicname1",
"partions": {
1: {
"partion_id":1,
"high_water_mark":12,
},
2: {}
}
},
"name2": {}
}
}
`
func main() {
var m map[string]interface{}
// if m has be well designed, use your designed map is better
// init
json.Unmarshal(val, &m)
}
- 3 回答
- 0 关注
- 130 浏览
添加回答
举报