首页 > 后端开发 > Golang > 正文

在 Go 中使用映射切片时,如何避免'Assignment to Entry in Nil Map”运行时错误?

Susan Sarandon
发布: 2024-11-06 07:27:02
原创
516 人浏览过

How to Avoid

运行时错误:“分配给 Nil 映射中的条目”

使用地图切片时,避免创建切片是至关重要的nil 映射,这将导致像您遇到的那样的运行时错误。

要创建映射切片,请按照以下步骤操作:

  1. 制作一个使用 make() 函数的地图切片:

    <code class="go">invs := make([]map[string]string, length)</code>
    登录后复制
  2. 填充切片内的地图:

    <code class="go">for i := 0; i < length; i++ {
        invs[i] = map[string]string{"Id": inv_ids[i], "Investor": inv_names[i]}
    }</code>
    登录后复制

考虑使用复合文字:

您可以使用复合文字,它组合了所有键值,而不是创建 nil 映射并为其赋值配对成单个表达式:

<code class="go">invs[i] = map[string]string{"Id": inv_ids[i], "Investor": inv_names[i]}</code>
登录后复制

使用结构体的替代方法:

另一种更惯用的方法是定义一个结构体来表示投资者并使用结构体切片:

<code class="go">type Investor struct {
    Id   int
    Name string
}

invs := make([]Investor, length)

for i := 0; i < length; i++ {
    invs[i] = Investor{Id: i, Name: "John" + strconv.Itoa(i)}
}</code>
登录后复制

以上是在 Go 中使用映射切片时,如何避免'Assignment to Entry in Nil Map”运行时错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!