Heim > Backend-Entwicklung > Golang > Wie gehe ich mit Fehlern wie „Ungültige Speicheradresse oder Null-Zeiger-Dereferenzierung' beim Zugriff auf Kartenelemente in Go um?

Wie gehe ich mit Fehlern wie „Ungültige Speicheradresse oder Null-Zeiger-Dereferenzierung' beim Zugriff auf Kartenelemente in Go um?

Susan Sarandon
Freigeben: 2024-12-05 21:11:12
Original
1073 Leute haben es durchsucht

How to Handle

"Map[string]*Type "Invalid Memory Address or Nil Pointer Deference"

Beim Zugriff auf die Felder einer Struktur kann es vorkommen, dass Fehler „Ungültige Speicheradresse oder Null-Zeiger-Dereferenzierung“. Dies weist normalerweise darauf hin, dass der Zeiger auf die Struktur entweder nicht initialisiert ist oder auf einen ungültigen Speicher zeigt Adresse.

In Ihrem Fall versuchen Sie, ein Feld in einer Bedingungszuordnung festzulegen. Da es sich bei der Bedingungszuordnung jedoch um eine leere Zuordnung von Zeigern handelt, rufen Sie einen Nullwert für *guardduty.Condition ab Bedingung.

Laut „Maps in Action“ für Go kann man das Vorhandensein eines Schlüssels anhand eines Zweiwerts testen Zuweisung:

i, ok := m["route"]
Nach dem Login kopieren

In dieser Zuweisung wird i der unter dem Schlüssel „route“ gespeicherte Wert zugewiesen. Wenn der Schlüssel nicht vorhanden ist, wird i der Werttyp Null (0) zugewiesen , ok, ist ein boolescher Wert, der angibt, ob der Schlüssel in der Karte vorhanden ist.

Um das Problem zu beheben, ändern Sie Ihren Code wie folgt:

if cond, ok := condition["id"]; !ok { // <nil> false
    log.Println("Pointer is null")
} else {
    // Initialize a new guardduty.Condition
    // and assign it to the required key
    nc := &guardduty.Condition{Equals: strPtr}
    condition["id"] = nc
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Fehlern wie „Ungültige Speicheradresse oder Null-Zeiger-Dereferenzierung' beim Zugriff auf Kartenelemente in Go um?. 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