我正在尝试生成一个地图,然后将其转换为如下的yaml文件:
uid :
kasi:
cn: Chaithra
street: fkmp
nandan:
cn: Chaithra
street: fkmp
remya:
cn: Chaithra
street: fkmp
我想我在创建地图时错过了一些重要的东西。我的代码如下。
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
您定义的映射可能是通过使用变量<code>varm map〔string〕接口{}</code>
相反,使用m:=make(map[string]接口{})
来避免相应的错误
您应该检查map是否为nil,如果在for循环中为nil,则初始化map:
if m["uid"] == nil {
m["uid"] = map[string]T{}
}
您还没有初始化您的内部映射。在for循环之前,您可以添加m["uid"]=make(map[string]T)
,然后分配名称。
问题内容: 我正在尝试生成地图,然后将其转换为yaml文件,如下所示: 我想我在创建地图时缺少一些重要的东西。我的代码如下。 它给出了以下错误: 问题答案: 您尚未初始化内部地图。在for循环之前,您可以添加然后分配名称。
问题内容: 我正在尝试创建地图片段。尽管代码可以很好地编译,但在下面出现运行时错误: 我尝试制作一个Map数组,每个Map包含两个索引,即“ Id”和“ Investor”。我的代码如下所示: 我最初认为类似下面的内容会起作用,但是也无法解决问题。有任何想法吗? 问题答案: 您正在试图建立一个 切片 地图; 考虑以下示例: http://play.golang.org/p/gChfTgtmN- 您
概述:最初,我对这个程序的预期目的是制作一个Treemap来读取文本文档,特别是找到所有单词和单词所在的索引/行。现在我想列出一个“十大”名单,其中包含使用最多的单词。我想“翻转”我的树状图,这样整型值将是按顺序排列的,然后是字符串
但这不是有效的语法。 我是否必须分别检查每一个密钥才能处理无的情况?
我有两个需要映射的继承层次结构。一个层次结构是国内的,另一个是野生的。我有抽象的Domestic动物和具体的DomesticCat和DomesticDog扩展它。在第二个层次结构中,我有抽象的Wild动物和具体的WildCat和WildDog扩展它。我还有另外两个类,分别是WildAnimalFeeder具有Wild动物的成员对象和DomesticAnimalFeeder具有DomesticAni
问题内容: 我有一个带有复合键的实体,因此我使用@Embeddable和@EmbeddedId批注。可嵌入类如下所示: 以及使用它的实体: 现在,我想将该实体映射到另一个这样的实体中: 注意 的mappedBy =“id.admin” 是指 管理 字段中 DitaAdminAccountSkillPK 使用 ID 的字段 DitaAdminAccountSkill 。 这样可以编译运行。但是,在e