Menu
Coddy logo textTech

Prüfen auf Mitgliedschaft

Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy. Lektion 34 von 68.

Nachdem du nun Elemente zu deinem Set hinzufügen kannst, besteht der nächste wichtige Vorgang darin zu prüfen, ob ein bestimmtes Element im Set vorhanden ist. Hier erweist sich GOs „comma ok“-Idiom als äußerst nützlich.

Um zu prüfen, ob ein Element in deinem Set vorhanden ist, verwendest du dieselbe Syntax wie beim Prüfen, ob ein Schlüssel in einer Map vorhanden ist:

_, ok := colors["red"]
if ok {
    fmt.Println("Red is in the set")
} else {
    fmt.Println("Red is not in the set")
}

Der Unterstrich _ wird verwendet, weil uns der tatsächliche Wert (der immer eine leere Struktur ist) nicht interessiert. Uns interessiert nur die boolesche Variable ok, die uns mitteilt, ob der Schlüssel vorhanden ist.

Du kannst dieses Muster auch direkt in einer if-Anweisung verwenden, um kompakteren Code zu schreiben:

if _, exists := colors["blue"]; exists {
    fmt.Println("Blue is in the set")
}

Diese Mitgliedschaftsprüfung ist schnell und effizient und nutzt die optimierte map-Implementierung von Go, um dir die Leistungsvorteile einer echten Mengen-Datenstruktur zu bieten.

challenge icon

Aufgabe

Einfach

Erstelle ein Verifizierungssystem für Teammitglieder, das mithilfe des Go-Set-Idioms prüft, ob bestimmte Personen zu einem Projektteam gehören. Diese Herausforderung zeigt, wie du das Komma-ok-Idiom verwenden kannst, um die Zugehörigkeit zu einem Set zu testen.

Du erhältst zwei Eingaben:

  • Eine Zeichenkette mit durch Kommas getrennten Teammitgliedern (z. B. "Alice,Bob,Charlie,Diana,Eve")
  • Eine Zeichenkette mit durch Kommas getrennten Personen, die überprüft werden sollen (z. B. "Bob,Frank,Alice,Grace,Charlie")

Deine Aufgabe ist es:

  1. Ein Set mit dem Go-Idiom map[string]struct{} zu erstellen, um die Teammitglieder zu speichern
  2. Die erste Eingabezeichenkette durch Aufteilen an den Kommas zu verarbeiten, um die einzelnen Namen der Teammitglieder zu erhalten
  3. Jedes Teammitglied mithilfe des leeren Struct-Literals {} als Wert zu deinem Set hinzuzufügen
  4. Die zweite Eingabezeichenkette durch Aufteilen an den Kommas zu verarbeiten, um die Liste der zu überprüfenden Personen zu erhalten
  5. Für jede zu überprüfende Person das Komma-ok-Idiom _, ok := teamSet[person] zu verwenden, um die Zugehörigkeit zu testen
  6. Die Überprüfungsergebnisse für jede überprüfte Person anzuzeigen:
    • Wenn die Person zum Team gehört: "[person] is on the team"
    • Wenn die Person nicht zum Team gehört: "[person] is not on the team"
  7. Nachdem alle Personen überprüft wurden, eine Zusammenfassung anzuzeigen:
    • "Team size: [team_member_count]"
    • "People checked: [people_checked_count]"
    • "Team members found: [found_count]"
    • "Non-team members: [not_found_count]"

Verwende das Paket strings, um die Eingabezeichenketten an den Kommas aufzuteilen. Diese Herausforderung zeigt, wie das Komma-ok-Idiom eine sichere und effiziente Möglichkeit bietet, die Zugehörigkeit zu einem Go-Set zu überprüfen, indem es sowohl den Wert als auch einen booleschen Wert zurückgibt, der angibt, ob der Schlüssel vorhanden ist.

Probier es selbst

package main

import (
	"fmt"
	"strings"
)

func main() {
	// Eingabe lesen
	var teamMembersInput string
	var peopleToCheckInput string
	fmt.Scanln(&teamMembersInput)
	fmt.Scanln(&peopleToCheckInput)
	
	// Eingabezeichenketten parsen
	teamMembers := strings.Split(teamMembersInput, ",")
	peopleToCheck := strings.Split(peopleToCheckInput, ",")
	
	// TODO: Schreibe deinen Code darunter
	// Erstelle ein Set mit map[string]struct{}
	// Füge Teammitglieder zum Set hinzu
	// Überprüfe jede Person mit dem Komma-ok-Idiom
	// Zeige Verifizierungsergebnisse und Zusammenfassung an
	
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-Go-Compiler