Mengen erstellen
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy. Lektion 18 von 56.
Ein Set ist eine ungeordnete Sammlung eindeutiger Werte. Für jedes Mitglied derselbe Elementtyp, keine Duplikate erlaubt, keine vorhersehbare 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 Literaldarstellung erforderlich, da ["a", "b"] allein als Array abgeleitet würde.
Drei grundlegende Operationen: contains, insert und remove. Die letzten beiden geben Informationen darüber zurück, ob die Änderung von Bedeutung war.
colors.insert("yellow") // fügt es hinzu
colors.insert("red") // bereits vorhanden, keine Wirkung
colors.contains("green") // wahr
colors.remove("blue") // gibt "blue" oder nil zurück, falls fehlendDas Erstellen einer Menge 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: 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, verbunden 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: deduplizieren 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 TrimSuchen in StringsAufteilen und ZusammenfügenTeilstrings ersetzenRückblick – Benutzernamen prüfen4Mengen
Mengen erstellenVereinigung und SchnittmengeSubtraktion und symmetrische DifferenzTeilmenge und ObermengeWiederholung – Tag-Filter7Projekt – Gewohnheitstracker
ProjektübersichtAls erledigt markieren2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteBereichsmethodenBereiche in SwitchRückblick – Kalender-Raster5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerketten von Map, Filter und ReduceRückblick – WortstatistikÜbe selbstständig: Swift-Playground