Tworzenie zbiorów
Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 18 z 56.
Set to nieuporządkowany zbiór unikatowych wartości. Każdy element ma ten sam typ, duplikaty są niedozwolone, a kolejność iteracji jest nieprzewidywalna.
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3 (duplikat "red" jest pomijany)Adnotacja typu Set<String> jest wymagana w formie literału, ponieważ samo ["a", "b"] zostałoby zinterpretowane jako Array.
Trzy podstawowe operacje: contains, insert i remove. Dwie ostatnie zwracają informację o tym, czy zmiana miała znaczenie.
colors.insert("yellow") // dodaje go
colors.insert("red") // już tam jest, bez efektu
colors.contains("green") // true
colors.remove("blue") // zwraca "blue" lub nil, jeśli go nie maUtworzenie zbioru z tablicy usuwa duplikaty za jednym razem:
let unique = Set([1, 2, 2, 3, 3, 3])
// 3 elementy, dokładna kolejność nie jest gwarantowanaWyzwanie
PoczątkującyWczytaj jeden wiersz wejścia: listę słów oddzielonych przecinkami (mogą się powtarzać).
Wypisz trzy wiersze:
- Liczbę unikalnych słów (użyj
Set) - Unikalne słowa posortowane alfabetycznie, połączone za pomocą
, true, jeśli wejście zawiera słowoswift, w przeciwnym raziefalse(użyjcontains)
Dla wejścia swift,ruby,go,swift,go,rust wynikiem jest:
4
go,ruby,rust,swift
trueSpróbuj swoich sił
let words = readLine()!.components(separatedBy: ",")
// TODO: usuń duplikaty za pomocą Set, wypisz liczbę elementów, połącz posortowane elementy, zawiera dokładny tekst z instrukcji
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Dogłębnie o ciągach znaków
Liczba i indeksyWielkość liter i usuwanie białych znakówWyszukiwanie w ciągach znakówDzielenie i łączenieZastępowanie podciągówPodsumowanie — sprawdzanie nazwy użytkownika4Zbiory
Tworzenie zbiorówSuma i część wspólnaRóżnica i różnica symetrycznaPodzbiór i nadzbiórPowtórka — filtr tagów7Projekt – Śledzenie nawyków
Przegląd projektuOznacz jako wykonane10Projekt — silnik quizów
Przegląd projektuZadawanie pytań2Zakresy i kroki
Zakresy domknięte i półotwarteKrokMetody zakresówZakresy w instrukcji switchPowtórka — siatka kalendarza5Funkcje wyższego rzędu, część 1
MapFilterReduceŁączenie map, filter i reducePodsumowanie – statystyki słówPoćwicz samodzielnie: Edytor online Swift