Heim  >  Artikel  >  Backend-Entwicklung  >  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
Susan SarandonOriginal
2024-11-12 10:26:02679Durchsuche

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",
}

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)

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

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!

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