Swift Academy · Lekcja

Iterowanie po kolekcjach za pomocą for-in

Przechodzić po tablicach, słownikach i zbiorach za pomocą enumerated i zip

Lekcja 3 z 412 kroki

Iterowanie po kolekcjach za pomocą for-in to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 3 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.

Wprowadzenie

Pętla `for-in` działa z dowolnym typem `Sequence` — tablicami, słownikami, zbiorami, łańcuchami znaków oraz własnymi typami. Poznajmy najbardziej przydatne wzorce.

Iterowanie po tablicy

```swift let fruits = ["apple", "banana", "cherry"] for fruit in fruits { print(fruit) } // apple, banana, cherry ``` Podczas jednej iteracji każdy element jest przypisywany do zmiennej `fruit`.

enumerated() — indeks i wartość

Gdy potrzebny jest zarówno indeks, jak i wartość, należy użyć `.enumerated()`: ```swift for (index, fruit) in fruits.enumerated() { print("\(index): \(fruit)") } // 0: apple // 1: banana // 2: cherry ``` `enumerated()` zwraca sekwencję krotek `(offset, element)`.

Iterowanie po słowniku

Iterowanie po słowniku zwraca krotki `(key, value)` w nieokreślonej kolejności: ```swift let scores = ["Alice": 95, "Bob": 87] for (name, score) in scores { print("\(name): \(score)") } ``` Jeśli potrzebna jest deterministyczna kolejność, należy najpierw posortować klucze.

Iterowanie po zbiorze

Elementy zbioru są iterowane w nieokreślonej kolejności: ```swift let colors: Set = ["red", "green", "blue"] for color in colors.sorted() { print(color) } ``` Gdy potrzebna jest kolejność alfabetyczna lub rosnąca, należy wywołać `.sorted()`.

zip() — iterowanie równoległe

Dwie sekwencje można iterować równolegle za pomocą `zip()`: ```swift let names = ["Alice", "Bob", "Carol"] let scores = [95, 87, 92] for (name, score) in zip(names, scores) { print("\(name): \(score)") } ``` `zip` kończy działanie na końcu krótszej sekwencji.

Filtrowanie podczas iteracji: klauzula where

Dodanie klauzuli `where` pozwala pomijać elementy bezpośrednio w pętli: ```swift for n in 1...20 where n % 3 == 0 { print(n) // 3, 6, 9, 12, 15, 18 } ``` To rozwiązanie jest czytelniejsze niż umieszczanie instrukcji `if` w treści pętli.

Iterowanie za pomocą indeksów

Dostęp do zakresu indeksów można uzyskać za pomocą `.indices`: ```swift var arr = [10, 20, 30] for i in arr.indices { arr[i] *= 2 } // arr is now [20, 40, 60] ``` Należy użyć tego rozwiązania, gdy trzeba *modyfikować* elementy w miejscu.

Destrukturyzacja krotek w pętli for-in

Sekwencje krotek można bezpośrednio destrukturyzować w pętli: ```swift let points = [(1, 2), (3, 4), (5, 6)] for (x, y) in points { print("x=\(x), y=\(y)") } ``` To rozwiązanie jest przejrzyste i zwięzłe — nie ma potrzeby używania indeksów `.0` i `.1`.

Leniwe sekwencje w pętlach

Prefiks `.lazy` odracza obliczenia i pozwala uniknąć tworzenia tablic pośrednich: ```swift let total = (1...1_000_000) .lazy .filter { $0 % 2 == 0 } .prefix(5) .reduce(0, +) print(total) // 30 ``` `.lazy` jest szczególnie przydatne podczas łańcuchowego wywoływania operacji na dużych sekwencjach.

Szybkie sprawdzenie

Która metoda udostępnia zarówno indeks, jak i wartość podczas iterowania po tablicy?

Podsumowanie

Najważniejsze informacje: • `for elem in collection` — podstawowa iteracja • `.enumerated()` — pary indeks + wartość • `zip(a, b)` — równoległa iteracja dwóch sekwencji • `for x in seq where condition` — filtrowanie bezpośrednio w pętli • `.indices` — należy użyć podczas modyfikowania elementów • `.lazy` — odracza pracę w przypadku dużych sekwencji Dalej: `break`, `continue` i instrukcje etykietowane.
Bezpłatny start

Ucz się Swift dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
122
Lekcje
409

Często zadawane pytania

Czy lekcja „Iterowanie po kolekcjach za pomocą for-in” jest bezpłatna?

Tak — pełny tekst „Iterowanie po kolekcjach za pomocą for-in” 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 „Iterowanie po kolekcjach za pomocą for-in”?

Przechodzić po tablicach, słownikach i zbiorach za pomocą enumerated i zip Ć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 3 z 4.

Ile czasu zajmuje lekcja „Iterowanie po kolekcjach za pomocą for-in”?

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

  1. Pętle for-in z zakresami
  2. Pętle while i repeat-while
  3. Iterowanie po kolekcjach za pomocą for-in
  4. break, continue i instrukcje z etykietami
← Powrót do Swift Academy