Avatar ·

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

Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und habe ein Problem mit Maps. Angenommen, ich erstelle eine Map, die Benutzer nach ihrer ID speichert: ```go users := map[int]string{ 1: "Alice", 2: "Bob", } ``` Ich muss überprüfen, ob ein Benutzer mit der ID, z.B. 3, existiert. Ich habe es so versucht: ```go if users[3] != "" { fmt.Println("User found") } else { fmt.Println("User not found") } ``` Aber das scheint falsch, denn wenn der Wert leer ist (z.B. der Benutzer hat einen leeren Namen), dann schlägt die Prüfung fehl. Außerdem habe ich gehört, dass in Go beim Zugriff auf einen nicht existierenden Schlüssel der Nullwert (zero value) für den Werttyp zurückgegeben wird. Für Strings ist das ein leerer String, für Zahlen 0, für Booleans false. Aber wie unterscheidet man dann das Fehlen eines Schlüssels von einem tatsächlichen Nullwert? Gibt es eine idiomatische Methode, um das Vorhandensein eines Schlüssels in einer Map zu überprüfen? Ich habe gelesen, dass es in anderen Sprachen (z.B. in Python) den Operator `in` gibt, aber in Go habe ich so etwas nicht gefunden.