运行时错误:在nil地图中分配到条目 [英] Runtime error: assignment to entry in nil map
本文介绍了运行时错误:在nil地图中分配到条目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试生成一个地图,然后将其转换为一个yaml文件,如下所示:
I am trying to generate a map and then convert that to a yaml file like this:
uid :
kasi:
cn: Chaithra
street: fkmp
nandan:
cn: Chaithra
street: fkmp
remya:
cn: Chaithra
street: fkmp
我想我在创建地图时遗漏了一些重要的东西。我的代码在下面。
I think I am missing something important while creating the map. My code is below.
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
推荐答案
您尚未初始化内部地图。在你的循环之前,你可以添加 m [uid] = make(map [string] T)
然后分配名称。
You have not initialized your inner map. Before your for loop you can add m["uid"] = make(map[string]T)
and then assign the name.
这篇关于运行时错误:在nil地图中分配到条目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文