Heim > Backend-Entwicklung > Golang > Wie rufe ich Werte aus einer Go-Map mit verschiedenen Datentypen sicher ab?

Wie rufe ich Werte aus einer Go-Map mit verschiedenen Datentypen sicher ab?

Susan Sarandon
Freigeben: 2024-11-12 10:26:02
Original
742 Leute haben es durchsucht

How to Safely Fetch Values from a Go Map with Different Data Types?

Werte aus einer Go-Map abrufen

Problemszenario

Betrachten Sie die folgende Go-Map:

res := map[string]interface{}{
    "Event_dtmReleaseDate": "2009-09-15 00:00:00 +0000 +00:00",
    "Trans_strGuestList": nil,
    "strID":              "TSTB",
}
Nach dem Login kopieren

Das Ziel ist um die folgenden Werte aus dem abzurufen Karte:

  • Event_dtmReleaseDate
  • strID
  • Trans_strGuestList

Lösung

Um auf Werte aus einer Go-Karte zuzugreifen, Sie müssen den mit dem Wert verknüpften Schlüssel verwenden. In diesem Fall enthält die Karte jedoch verschiedene Arten von Werten, z. B. Zeichenfolgen und Null.

Verwenden von Typzusicherungen

Eine Möglichkeit, Werte abzurufen, ist die Verwendung von Typ Behauptungen, wie unten gezeigt:

id := res["strID"].(string)
Nach dem Login kopieren

Diese Zeile ruft den mit dem „strID“-Schlüssel verknüpften Wert ab und bestätigt, dass er vom Typ ist string.

Sichere Typprüfung

Um potenzielle Panik aufgrund falscher Typen oder fehlender Schlüssel zu vermeiden, sollten Sie den folgenden sicheren Ansatz in Betracht ziehen:

var id string
var ok bool
if x, found := res["strID"]; found {
    if id, ok = x.(string); !ok {
        // Handle errors if the value is not a string.
    }
} else {
    // Handle errors if the key does not exist in the map.
}
Nach dem Login kopieren

Dieser Code prüft, ob die Karte den Schlüssel „strID“ enthält. Wenn dies der Fall ist, versucht es, den Wert in eine Zeichenfolge umzuwandeln und weist ihn der ID-Variablen zu. Dieser Ansatz stellt sicher, dass der Code bei Typkonflikten oder fehlenden Schlüsseln nicht in Panik gerät.

Zusätzliche Hinweise

  • Weitere Informationen zu Go-Karten finden Sie unter die Go-Dokumente: http://golang.org/doc/efficient_go.html#maps.
  • Informationen zu Typzusicherungen und Schnittstellenkonvertierungen finden Sie unter Besuchen Sie: http://golang.org/doc/efficient_go.html#interface_conversions.

Das obige ist der detaillierte Inhalt vonWie rufe ich Werte aus einer Go-Map mit verschiedenen Datentypen sicher ab?. 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