Heim >Backend-Entwicklung >Golang >Wie greife ich in Go sicher auf Werte von einer „map[string]interface{}' zu?

Wie greife ich in Go sicher auf Werte von einer „map[string]interface{}' zu?

DDD
DDDOriginal
2024-11-16 07:51:031008Durchsuche

How to Safely Access Values from a `map[string]interface{}` in Go?

Zugriff auf Werte aus einer Karte in Go

Beim Extrahieren von Daten aus einer Karte kann der gewünschte Wert mithilfe des Kartenschlüssels als Schlüssel erhalten werden Index. Wenn es sich jedoch um eine Variable handelt, die eine Karte vom Typ „map[string]interface {}“ speichert, ist der Schlüssel ein String, der Wert kann jedoch im Typ variieren.

Um sicher auf einen Wert aus einer solchen Karte zuzugreifen :

myValue := myMap[key].(VariableType)

Um beispielsweise einen Zeichenfolgenwert abzurufen:

id := res["strID"].(string)

Es ist wichtig zu beachten, dass dieser Ansatz davon ausgeht, dass die Typzusicherung korrekt ist. Um die Sicherheit zu gewährleisten:

var myValue VariableType
var ok bool
if x, found := myMap[key]; found {
    if myValue, ok = x.(VariableType); !ok {
        // Handle errors if the type assertion failed
    }
} else {
    // Handle errors if the key was not found
}

Weitere Informationen finden Sie unter den bereitgestellten Links:

  • Karten in Go: http://golang.org/doc/ Effective_go.html# Karten
  • Typzusicherungen und Schnittstellenkonvertierungen: http://golang.org/doc/ Effective_go.html#interface_conversions

Das obige ist der detaillierte Inhalt vonWie greife ich in Go sicher auf Werte von einer „map[string]interface{}' zu?. 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