运行时错误:“分配给 Nil 映射中的条目”
使用地图切片时,避免创建切片是至关重要的nil 映射,这将导致像您遇到的那样的运行时错误。
要创建映射切片,请按照以下步骤操作:
制作一个使用 make() 函数的地图切片:
<code class="go">invs := make([]map[string]string, length)</code>
填充切片内的地图:
<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中文网其他相关文章!