Heim >Backend-Entwicklung >Golang >Wie kann ich das Vorhandensein von Schlüsseln auf mehreren Go-Maps effizient prüfen?

Wie kann ich das Vorhandensein von Schlüsseln auf mehreren Go-Maps effizient prüfen?

Susan Sarandon
Susan SarandonOriginal
2024-12-17 08:04:25663Durchsuche

How Can I Efficiently Check for Key Existence Across Multiple Go Maps?

Effiziente Schlüsselexistenzprüfung in mehreren Karten

In Go wird häufig mit Karten gearbeitet, bei denen es sich um effiziente Datenstrukturen zum Abrufen von Schlüsseln handelt -Wert-Paare. Der vom Entwickler bereitgestellte Code zeigt jedoch, dass die Existenz eines Schlüssels in zwei separaten Karten überprüft werden muss. Es bleibt die Frage, ob dieser Prozess prägnanter gestaltet werden kann.

Wie in der Antwort erläutert, ist die Verwendung der speziellen Form v, ok := m[k] in Go zur Überprüfung der Schlüsselexistenz auf Zuweisungen einzelner Variablen beschränkt . Daher ist es nicht möglich, die beiden Prüfungen in einer If-Bedingung in dieser Form zu kombinieren.

Es gibt jedoch alternative Ansätze, um die gewünschte Funktionalität zu erreichen:

  1. Tupelzuweisung:
    Wenn der Werttyp der Karte ein Schnittstellentyp ist und Sie sicherstellen können, dass der Nullwert nicht verwendet wird, können Sie eine Tupelzuweisung mit durchführen zwei Indexausdrücke:

    if v1, v2 := m1["aaa"], m2["aaa"]; v1 != nil && v2 != nil {
        // ...
    }
  2. Hilfsfunktion:
    Eine Hilfsfunktion kann erstellt werden, um die Schlüsselexistenzprüfung in beiden Karten durchzuführen und die Ergebnisse zurückzugeben :

    func idx(m1, m2 map[string]interface{}, k string) (
        v1, v2 interface{}, ok1, ok2 bool) {
    
        v1, ok1 = m1[k]
        v2, ok2 = m2[k]
        return
    }

    Diese Funktion kann dann verwendet werden als folgt:

    if v1, v2, ok1, ok2 := idx(m1, m2, "aaa"); ok1 && ok2 {
        // ...
    }

Diese Ansätze ermöglichen eine präzise und effiziente Prüfung der Existenz eines Schlüssels in mehreren Zuordnungen innerhalb einer einzigen bedingten Anweisung.

Das obige ist der detaillierte Inhalt vonWie kann ich das Vorhandensein von Schlüsseln auf mehreren Go-Maps effizient prüfen?. 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