首页  >  文章  >  后端开发  >  在 Go 中使用映射切片时,如何避免“Assignment to Entry in Nil Map”运行时错误?

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

Susan Sarandon
Susan Sarandon原创
2024-11-06 07:27:02500浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn