0Pricing
Swift Academy · Lekcja

Algorytmy generyczne na kolekcjach

Używajcie generycznych algorytmów, takich jak map , filter i reduce , oraz piszcie własne funkcje dla Sequence z prostymi ograniczeniami.

Algorytmy generyczne na kolekcjach to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 3 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.

Dlaczego algorytmy generyczne?

Swift udostępnia zaawansowane, generyczne algorytmy dla Sequence/Collection: map, filter i reduce. Można również pisać własne generyczne elementy pomocnicze.

map

map stosuje transformację do każdego elementu 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 caps = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(caps)

filter

filter zachowuje elementy spełniające predykat.

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 sum = [1,2,3,4].reduce(0) { acc, x in acc + x } // 10
print(sum)

let joined = ["a","b","c"].reduce("") { acc, s in acc + s } // "abc"
print(joined)

Własny algorytm generyczny (Sequence)

Należy utworzyć własny algorytm generyczny, ograniczając dane wejściowe do Sequence i korzystając z jego elementu Element.

// Works for any Sequence whose Element meets the predicate
func allMatch<S: Sequence>(_ seq: S, _ predicate: (S.Element) -> Bool) -> Bool {
    for x in seq { if !predicate(x) { return false } }
    return true
}
print(allMatch([2,4,6]) { $0 % 2 == 0 }) // true
print(allMatch(["ab","c"]) { $0.count >= 2 }) // false

Wskazówki i wzorce

Wskazówki:

  • Należy preferować czytelne domknięcia; jeśli cierpi na tym czytelność, warto nazywać parametry.
  • Można łączyć map → filter → reduce w potoki.
  • Ciężkie operacje należy umieszczać poza gorącymi pętlami, aby poprawić wydajność.

Znaczenie reduce

Szybkie sprawdzenie: Która operacja łączy sekwencję w jedną wartość, używając wartości początkowej?

Podsumowanie

Podsumowanie: Należy używać map do transformowania, filter do wybierania, a reduce do łączenia elementów. Można również pisać własne generyczne elementy pomocnicze dla Sequence.

Często zadawane pytania

Czy lekcja „Algorytmy generyczne na kolekcjach” jest bezpłatna?

Tak — pełny tekst „Algorytmy generyczne na kolekcjach” 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 „Algorytmy generyczne na kolekcjach”?

Używajcie generycznych algorytmów, takich jak map , filter i reduce , oraz piszcie własne funkcje dla Sequence z prostymi ograniczeniami. Ć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 3.

Ile czasu zajmuje lekcja „Algorytmy generyczne na kolekcjach”?

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. Funkcje i typy generyczne
  2. Ograniczenia (where), inferencja typów
  3. Algorytmy generyczne na kolekcjach
← Powrót do Swift Academy