Wie überprüft man, ob eine Map einen Schlüssel in Go enthält

Suraj Joshi 30 Januar 2023
  1. Struktur der map in Go
  2. Prüfen Sie auf “Schlüssel” in Go-map
Wie überprüft man, ob eine Map einen Schlüssel in Go enthält

Hash-Tabellen sind in Go als map-Datentyp implementiert. Go Maps können als eine Sammlung von ungeordneten Paaren von Schlüssel-Werte-Paaren betrachtet werden. Maps sind einer der leistungsfähigsten und vielseitigsten Datentypen in Go aufgrund ihrer Fähigkeit, schnelle Suchen, Hinzufügen und Löschen durchzuführen. Wir erhalten zwei Rückgabewerte, wenn wir versuchen, den Wert von Schlüssel in einer map zu erhalten. Wenn der zweite Wert wahr ist, dann ist key auf der map vorhanden.

Struktur der map in Go

Syntax für map

var map_name map[KeyType]ValueType

Wobei KeyType jeder vergleichbare Datentyp und ValueType auch jeder Datentyp einschließlich map selbst ist. Der Datentyp für alle Schlüssel in einer map muß derselbe sein. In ähnlicher Weise muß auch der “Datentyp” für alle “Werte” in einer map derselbe sein. Der Datentyp der Schlüssel und der Datentyp der Werte können jedoch unterschiedlich sein.

package main

import "fmt"

func main() {
	map_1 := map[string]string{
		"Jenna": "Sthapit",
	}

	for k, v := range map_1 {
		fmt.Printf("Key:%v\nValue: %s\n", k, v)
	}

}

Ausgabe:

Key:Jenna
Value: Sthapit

Im obigen Beispiel hat map_1 den Datentyp string sowohl für die Schlüssel als auch für die Werte. In map_1 ist Sthapit der Wert für den Schlüssel Jenna.

Prüfen Sie auf “Schlüssel” in Go-map

Syntax zur Prüfung, ob eine map in Go Schlüssel enthält

first_value, second_value := map_name[key_name]

Die obige Aussage gibt zwei Werte zurück, nämlich Erster_Wert und Zweiter_Wert. Der erste_Wert gibt den Wert von Schlüssel zurück. Wenn der map_name keinen Schlüsselnamen enthält, ist der Vorstehwert der Standardwert Nullwert. In ähnlicher Weise ist zweiter_Wert ein boolescher Wert, der true ist, wenn der Schlüsselname in der map vorhanden ist. Wir können Erster_Wert und Zweiter_Wert auf unterschiedliche Weise interpretieren, um zu prüfen, ob die map_name Schlüsselname enthält.

package main

import "fmt"

func main() {
    map_name := map[int]string{
        0: "Alok",
        1: "Reman",
        2: "Riken",
        3: "Rudra",
    }
    _, second_value_1 := map_name[1]
    fmt.Printf("second_value for 1: %t\n", second_value_1)

    _, second_value_9 := map_name[9]
    fmt.Printf("second_value for 9: %t\n", second_value_9)
}   

Ausgabe:

second_value for 1: true
second_value for 9: false

Hier ist der zweite_Wert für 0 true, da der Schlüssel 0 in der map_name vorhanden ist. Der zweite_Wert für 9 ist jedoch false, da der Schlüssel 9 in der map_name nicht vorhanden ist.

package main

import "fmt"

func main() {
    map_name := map[string]string{
        "Giri":     "Alok",
        "Nembang":  "Reman",
        "Maharjan": "Riken",
        "Jha":      "Rudra",
    }
    if first_value, second_value := map_name["Giri"]; second_value {
        fmt.Printf("Giri is present in map. Value is: %s\n", first_value)
    } else {
        fmt.Printf("Giri is not present in map.\n")
    }

    if first_value, second_value := map_name["Sthapit"]; second_value {
        fmt.Printf("Sthapit is present in map. Value is: %s\n", first_value)
    } else {
        fmt.Printf("Sthapit is not present in map. \n")
    }
}
   

Ausgabe:

Giri is present in map. Value is: Alok
Sthapit is not present in map.

In diesem Beispiel haben wir die if-Anweisung benutzt, um zu prüfen, ob ein Schlüssel in der map existiert. Giri ist ein Schlüssel und Sthapit ist kein Schlüssel von map_name.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Go Map