Heim > Backend-Entwicklung > Golang > Wie vermeide ich den Fehler „Zuweisung zum Eintrag in Null-Karte' beim Erstellen von Kartenausschnitten in Go?

Wie vermeide ich den Fehler „Zuweisung zum Eintrag in Null-Karte' beim Erstellen von Kartenausschnitten in Go?

Patricia Arquette
Freigeben: 2024-11-05 16:23:02
Original
628 Leute haben es durchsucht

How to Avoid the

Zuordnung zum Eintrag in Null-Kartenfehler: Erstellen von Kartenausschnitten

Beim Versuch, Kartenausschnitte zu erstellen, ist es wichtig zu verstehen, wie das Gedächtnis funktioniert in Go wird zugewiesen und abgerufen. Der Laufzeitfehler „Zuweisung zu Eintrag in Null-Map“ tritt auf, wenn versucht wird, einem Null-Map-Eintrag einen Wert zuzuweisen.

Im bereitgestellten Code besteht das Ziel darin, einen Teil der Karten zu erstellen, wobei jede Karte zwei Indizes enthält : „ID“ und „Investor“. Der anfängliche Ansatz bestand darin, ein Array von Karten zu erstellen:

invs := make([]map[string]string, length)
Nach dem Login kopieren

Dies führte jedoch zu einem Panikfehler, da das Invs-Slice anfänglich keine Karten enthielt. Um dies zu beheben, lautet die richtige Deklaration:

a := make([]map[string]int, 100)
Nach dem Login kopieren

die jedes Element des Slice mit einer leeren Karte initialisiert.

Als nächstes iteriert der Code durch die Karten und füllt sie mit Daten:

for i := 0; i < length; i++ {
    invs[i] = make(map[string]string)
    invs[i]["Id"] = inv_ids[i]
    invs[i]["Investor"] = inv_names[i]
}
Nach dem Login kopieren

Dieser Ansatz erstellt Karten für jeden Eintrag im Slice. Eine präzisere Möglichkeit, die Karten zu füllen, ist jedoch die Verwendung zusammengesetzter Literale:

invs[i] = map[string]string{"Id": inv_ids[i], "Investor": inv_names[i]}
Nach dem Login kopieren

wodurch eine bereits gefüllte Karte erstellt wird.

Für einen idiomatischeren Ansatz sollten Sie die Verwendung von Strukturen zur Darstellung von Investoren in Betracht ziehen:

type Investor struct {
    Id   int
    Name string
}
Nach dem Login kopieren

und dann einen Teil der Anleger erstellen:

a := make([]Investor, 100)
for i := 0; i < 100; i++ {
    a[i] = Investor{Id: i, Name: "John" + strconv.Itoa(i)}
}
Nach dem Login kopieren

Dieser Ansatz bietet eine sauberere und typsicherere Möglichkeit, Anlegerdaten darzustellen.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage