本文介绍了运行时错误:分配给 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

推荐答案

你还没有初始化你的内部地图.在您的 for 循环之前,您可以添加 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 映射中的条目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-04 11:36
查看更多