0Pricing
Swift Academy · Lekcja

Map/Filter/Reduce, leniwe sekwencje

Używajcie map / filter / reduce do przekształcania, wybierania i łączenia danych, a następnie dodajcie .lazy , aby odroczyć pracę i uniknąć tablic pośrednich.

Map/Filter/Reduce, leniwe sekwencje to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 2 z 3. 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 3 lekcji w sumie.

Główna idea

Podstawowe algorytmy:

  • map: przekształca każdy element
  • filter: zachowuje elementy spełniające predykat
  • reduce: łączy elementy w jedną wartość
  • .lazy: odracza wykonywanie, aby uniknąć tablic tymczasowych

map

map przekształca każdy element i zwraca nową tablicę.

let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 }        // [2, 4, 6]
print(doubled)

let words = ["swift", "kit"]
let upper = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(upper)

filter

filter zachowuje elementy, dla których predykat zwraca wartość true.

let scores = [45, 72, 88, 53]
let passing = scores.filter { $0 >= 60 } // [72, 88]
print(passing)

let names = ["Ana","Li","Max"]
let short = names.filter { $0.count <= 2 } // ["Li"]
print(short)

reduce

reduce redukuje sekwencję do pojedynczego wyniku, używając wartości początkowej i domknięcia łączącego.

let total = [1,2,3,4].reduce(0) { acc, x in acc + x }   // 10
print(total)

let joined = ["a","b","c"].reduce("") { $0 + $1 }             // "abc"
print(joined)

Leniwe wykonywanie na żądanie

.lazy tworzy odroczony potok: operacje są wykonywane w miarę pobierania elementów (np. za pomocą prefix, first lub iteracji).

let range = 1...10
let lazyPipeline = range.lazy
    .map { x in print("map", x); return x * x }
    .filter { x in print("filter", x); return x % 2 == 0 }

// Only the first 3 results are needed:
let firstThree = Array(lazyPipeline.prefix(3))
print("result:", firstThree)
// Notice how only the work needed for 3 elements ran.

Wskazówki

Wskazówki:

  • Należy łączyć map → filter → reduce, aby uzyskać czytelny przepływ danych.
  • Należy dodawać .lazy, gdy pobierana jest tylko część potoku lub gdy chcemy uniknąć wartości tymczasowych.
  • Materiałizację za pomocą Array(...) należy stosować tylko wtedy, gdy potrzebna jest konkretna tablica.

Semantyka lazy

Szybkie sprawdzenie: Jaki wpływ ma .lazy na łańcuch map/filter?

Podsumowanie

Podsumowanie: Należy używać map do przekształcania, filter do wybierania, a reduce do łączenia. Należy dodawać .lazy na potrzeby obliczeń na żądanie i ograniczenia liczby alokacji.

Często zadawane pytania

Czy lekcja „Map/Filter/Reduce, leniwe sekwencje” jest bezpłatna?

Tak — pełny tekst „Map/Filter/Reduce, leniwe sekwencje” 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 3 lekcji w sumie.

Co nauczysz się w „Map/Filter/Reduce, leniwe sekwencje”?

Używajcie map / filter / reduce do przekształcania, wybierania i łączenia danych, a następnie dodajcie .lazy , aby odroczyć pracę i uniknąć tablic pośrednich. Ć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 2 z 3.

Ile czasu zajmuje lekcja „Map/Filter/Reduce, leniwe sekwencje”?

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. Hierarchie Sequence/Collection
  2. Map/Filter/Reduce, leniwe sekwencje
  3. Niestandardowe iteratory i wskazówki dotyczące wydajności
← Powrót do Swift Academy