ランタイム エラー: "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 マップを作成してそれに値を割り当てる代わりに、すべてのキーと値のペアを単一の 1 つに結合する複合リテラルを使用できます。式:
<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 でマップのスライスを操作するときに「Nil マップのエントリへの代入」ランタイム エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。