登录
首页 >  Golang >  Go问答

运行时错误:分配给 nil 映射中的条目

来源:Golang技术栈

时间:2023-03-23 10:28:57 311浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《运行时错误:分配给 nil 映射中的条目》主要内容涉及到golang等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我正在尝试生成地图,然后将其转换为 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

正确答案

你还没有初始化你的内部地图。在您的 for 循环之前,您可以添加m["uid"] = make(map[string]T)然后分配名称。

好了,本文到此结束,带大家了解了《运行时错误:分配给 nil 映射中的条目》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表