首頁  >  文章  >  後端開發  >  在 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>

考慮使用複合文字:

考慮使用複合文字:
<code class="go">invs[i] = map[string]string{"Id": inv_ids[i], "Investor": inv_names[i]}</code>

您可以使用複合文字,它組合了所有鍵值,而不是創建nil 映射並為其賦值配對成單個表達式:

使用結構體的替代方法:
<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