Mengen erstellen
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy. Lektion 18 von 56.
Ein Set ist eine ungeordnete Sammlung von eindeutigen Werten. Der gleiche Elementtyp für jedes Mitglied, keine Duplikate erlaubt, keine vorhersagbare Iterationsreihenfolge.
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3 (das Duplikat "red" wird verworfen)Die Typannotation Set<String> ist in der Literalform zwingend erforderlich, da ["a", "b"] für sich allein als Array inferiert werden würde.
Drei Kernoperationen: contains, insert und remove. Die letzten beiden liefern Informationen darüber, ob die Änderung bedeutsam war.
colors.insert("yellow") // fügt es hinzu
colors.insert("red") // bereits vorhanden, keine Wirkung
colors.contains("green") // true
colors.remove("blue") // gibt "blue" zurück oder nil, falls fehlendDas Erstellen eines Sets aus einem Array entfernt Duplikate in einem Schritt:
let unique = Set([1, 2, 2, 3, 3, 3])
// 3 Elemente, genaue Reihenfolge nicht garantiertAufgabe
AnfängerLies eine einzelne Eingabezeile ein: eine durch Kommas getrennte Liste von Wörtern (möglicherweise mit Duplikaten).
Gib drei Zeilen aus:
- Die Anzahl der eindeutigen Wörter (verwende
Set) - Die eindeutigen Wörter alphabetisch sortiert, zusammengefügt mit
, true, wenn die Eingabe das Wortswiftenthält, andernfallsfalse(verwendecontains)
Für die Eingabe swift,ruby,go,swift,go,rust lautet die Ausgabe:
4
go,ruby,rust,swift
trueProbier es selbst
let words = readLine()!.components(separatedBy: ",")
// TODO: dedupe via Set, Anzahl ausgeben, sortiert verbunden, enthält den exakten Text aus den Anweisungen
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Kontrollfluss
1Strings im Detail
Zählen und IndizesGroß-/Kleinschreibung und TrimmenSuchen in StringsTeilen und ZusammenfügenTeilstrings ersetzenWiederholung – Benutzernamen-Check4Mengen
Mengen erstellenVereinigung und SchnittmengeDifferenz und symmetrische DifferenzTeilmenge und ObermengeRückblick – Tag-Filter7Projekt - Habit Tracker
ProjektübersichtAls erledigt markieren2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteRange-MethodenRanges in SwitchRückblick – Kalender-Grid5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerkettung von map, filter, reduceRückblick – WortstatistikenÜbe selbstständig: Swift-Playground