0Pricing
Swift Academy · Lekcja

Operatory: map, filter, combineLatest

Przekształcanie i łączenie strumieni publisherów za pomocą operatorów Combine.

Operatory: map, filter, combineLatest to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 2 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.

Witamy

Operatory Combine przekształcają, filtrują i łączą strumienie publisherów. Znajdują się w potoku między publisherem a subskrybentem.

map

```swift [1,2,3].publisher .map { $0 * 2 } .sink { print($0) } // 2, 4, 6 ```

filter

```swift (1...10).publisher .filter { $0 % 2 == 0 } .sink { print($0) } // 2,4,6,8,10 ```

compactMap

```swift ["1","two","3"].publisher .compactMap { Int($0) } .sink { print($0) } // 1, 3 ```

combineLatest

```swift let usernamePublisher = usernameField.textPublisher let passwordPublisher = passwordField.textPublisher usernamePublisher .combineLatest(passwordPublisher) .map { !$0.isEmpty && $1.count >= 8 } .assign(to: &loginButton.$isEnabled) ```

merge

```swift merge(upstream1, upstream2) .sink { print($0) } // interleaved values from both ```

zip

```swift zip(publisher1, publisher2) .sink { print($0, $1) } // pairs values one-to-one ```

flatMap

```swift urls.publisher .flatMap { url in URLSession.shared.dataTaskPublisher(for: url).map(\.data) } .sink { data in ... } ```

debounce

```swift searchTextField.textPublisher .debounce(for: 0.3, scheduler: RunLoop.main) .removeDuplicates() .sink { self.search($0) } .store(in: &cancellables) ```

receive(on:)

```swift networkPublisher .receive(on: DispatchQueue.main) .sink { self.updateUI($0) } ```

Szybkie sprawdzenie

Który operator Combine emituje wartość dopiero wtedy, gdy wszystkie publishery nadrzędne wyemitują nowe wartości?

Podsumowanie

Najważniejsze informacje: • `map`, `filter`, `compactMap` — przekształcają elementy strumienia • `combineLatest` — najnowsza wartość z obu strumieni; `zip` — parowanie jeden do jednego • `flatMap` — spłaszcza wewnętrzne publishery asynchroniczne • `debounce` — czeka na przerwę przed emisją • `receive(on:)` — przełącza scheduler na potrzeby operacji interfejsu użytkownika Dalej: subjects.

Często zadawane pytania

Czy lekcja „Operatory: map, filter, combineLatest” jest bezpłatna?

Tak — pełny tekst „Operatory: map, filter, combineLatest” 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 „Operatory: map, filter, combineLatest”?

Przekształcanie i łączenie strumieni publisherów za pomocą operatorów Combine. Ć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 4.

Ile czasu zajmuje lekcja „Operatory: map, filter, combineLatest”?

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. Publishery i subskrybenci
  2. Operatory: map, filter, combineLatest
  3. PassthroughSubject i CurrentValueSubject
  4. Obsługa sieci z Combine i URLSession
← Powrót do Swift Academy