Heim  >  Artikel  >  Backend-Entwicklung  >  Wie vermeide ich den Laufzeitfehler „Zuweisung zum Eintrag in Null-Karte“ beim Arbeiten mit Kartenausschnitten in Go?

Wie vermeide ich den Laufzeitfehler „Zuweisung zum Eintrag in Null-Karte“ beim Arbeiten mit Kartenausschnitten in Go?

Susan Sarandon
Susan SarandonOriginal
2024-11-06 07:27:02500Durchsuche

How to Avoid

Laufzeitfehler: „Assignment to Entry in Nil Map“

Beim Arbeiten mit Kartenausschnitten ist es wichtig, die Erstellung eines Ausschnitts davon zu vermeiden Keine Karten, was zu einem Laufzeitfehler wie dem bei Ihnen aufgetretenen führt.

Um ein Kartensegment zu erstellen, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie eine Slice von Karten mit der Funktion make():

    <code class="go">invs := make([]map[string]string, length)</code>
  2. Füllen Sie die Karten innerhalb des Slice aus:

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

Erwägen Sie die Verwendung eines zusammengesetzten Literals:

Anstatt eine Null-Map zu erstellen und ihr Werte zuzuweisen, können Sie ein zusammengesetztes Literal verwenden, das alle Schlüsselwerte kombiniert Paare zu einem einzigen Ausdruck:

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

Alternativer Ansatz unter Verwendung einer Struktur:

Ein alternativer und idiomatischerer Ansatz besteht darin, eine Struktur zu definieren, um einen Investor darzustellen und zu verwenden ein Stück Strukturen:

<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>

Das obige ist der detaillierte Inhalt vonWie vermeide ich den Laufzeitfehler „Zuweisung zum Eintrag in Null-Karte“ beim Arbeiten mit Kartenausschnitten in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn