Zakresy jako kolekcje
Mapowanie i filtrowanie sekwencji zakresów.
Zakresy jako kolekcje to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.
Zakresy są sekwencjami
Zakres to coś więcej niż przedział liczb — jest sekwencją, którą można przekształcać za pomocą metod kolekcji, takich jak map i filter.
let squares = (1...5).map { $0 * $0 }
print(squares)Mapowanie zakresu
(1...n).map { ... } przekształca każdą liczbę w nową wartość, tworząc tablicę. Należy zwrócić uwagę na nawiasy wokół zakresu.
let doubled = (1...4).map { $0 * 2 }
print(doubled)Dlaczego potrzebne są nawiasy
Przed wywołaniem metody zakres należy umieścić w nawiasach, w przeciwnym razie Swift błędnie interpretuje składnię. Poprawny zapis to (1...5).map.
let labels = (1...3).map { "Item \($0)" }
print(labels)Filtrowanie zakresu
filter zachowuje tylko wartości spełniające warunek i zwraca tablicę dopasowanych elementów.
let evens = (1...10).filter { $0 % 2 == 0 }
print(evens)Redukowanie zakresu
reduce łączy wszystkie wartości w jedną. W tym przykładzie sumujemy liczby od 1 do 100.
let total = (1...100).reduce(0, +)
print(total)Konwertowanie na tablicę
Opakowanie zakresu w Array(...) materializuje każdą wartość w przechowywanej tablicy.
let nums = Array(1...5)
print(nums)
print(nums.count)forEach na zakresie
Można wywołać forEach, aby uruchomić closure dla każdej wartości, podobnie jak w pętli for.
(1...3).forEach { n in
print("Tick \(n)")
}Łączenie operacji
Ponieważ każda operacja zwraca kolekcję, można połączyć w łańcuch najpierw filter, a następnie map.
let result = (1...10).filter { $0 % 2 == 0 }.map { $0 * $0 }
print(result)Tworzenie danych wyszukiwania
Mapowanie zakresu to szybki sposób na generowanie danych testowych lub tabel wyszukiwania.
let table = (1...5).map { (n: $0, square: $0 * $0) }
for row in table {
print("\(row.n) -> \(row.square)")
}contains i agregacja
Zakresy obsługują również zapytania agregujące, takie jak contains, min i max.
let r = 5...15
print(r.contains(10))
print(r.min() ?? 0)
print(r.max() ?? 0)Zliczanie dopasowań
Połączenie filter z count pozwala policzyć, ile wartości spełnia warunek.
let multiplesOf3 = (1...30).filter { $0 % 3 == 0 }.count
print(multiplesOf3)Szybkie sprawdzenie
Proszę przetestować zakresy jako kolekcje.
Podsumowanie: zakresy jako kolekcje
Zakresy są sekwencjami, dlatego można na nich wywoływać map, filter, reduce i forEach — należy pamiętać o nawiasach. Za pomocą Array(range) można zmaterializować wartości.
print((1...5).map { $0 * $0 })Często zadawane pytania
Czy lekcja „Zakresy jako kolekcje” jest bezpłatna?
Tak — pełny tekst „Zakresy jako kolekcje” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Zakresy jako kolekcje”?
Mapowanie i filtrowanie sekwencji zakresów. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Swift Academy?
Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Zakresy jako kolekcje”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?
Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Zakresy zamknięte i lewostronnie domknięte
- Zakresy jednostronne
- Zliczanie za pomocą stride(from:to:by:)
- Zakresy jako kolekcje