我正在尝试生成 map ,然后将其转换为 yaml 文件,如下所示:
uid :
kasi:
cn: Chaithra
street: fkmp
nandan:
cn: Chaithra
street: fkmp
remya:
cn: Chaithra
street: fkmp
我想我在创建 map 时遗漏了一些重要的东西。我的代码如下。
package main
import (
"fmt"
"gopkg.in/yaml.v2"
)
type T struct {
cn string
street string
}
func main() {
names := []string{"kasi", "remya", "nandan"}
m := make(map[string]map[string]T, len(names))
for _, name := range names {
//t := T{cn: "Chaithra", street: "fkmp"}
m["uid"][name] = T{cn: "Chaithra", street: "fkmp"}
}
fmt.Println(m)
y, _ := yaml.Marshal(&m)
fmt.Println(string(y))
//fmt.Println(m, names)
}
出现以下错误:
panic: runtime error: assignment to entry in nil map
最佳答案
你还没有初始化你的内部 map 。在您的 for 循环之前,您可以添加 m["uid"] = make(map[string]T)
然后分配名称。
关于map - 运行时错误 : assignment to entry in nil map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27267900/