0Pricing
Swift Academy · Lekcja

Inferencja w domknięciach

Poznanie inferencji parametrów i wartości zwracanej w domknięciach.

Inferencja w domknięciach 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.

Domknięcia wnioskują typy

W wielu kontekstach domknięcie może wywnioskować zarówno typ parametru, jak i typ zwracany na podstawie sposobu użycia.

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

Wnioskowanie typu parametru

Gdy przekazują Państwo domknięcie do map, typ elementu informuje Swift, czym jest $0, więc można pominąć typ parametru.

let names = ["ada", "bob"]
let upper = names.map { $0.uppercased() }
print(upper)

Wnioskowanie typu zwracanego

Treść domknięcia określa jego typ zwracany. Zwracanie wartości Bool sprawia, że domknięcie staje się predykatem.

let nums = [1, 2, 3, 4, 5]
let evens = nums.filter { $0 % 2 == 0 }
print(evens)

Skrócone nazwy argumentów

$0, $1 i kolejne nazwy odwołują się do argumentów domknięcia według pozycji, gdy ich typy są wnioskowane.

let sums = zip([1, 2, 3], [10, 20, 30]).map { $0 + $1 }
print(Array(sums))

Jawne parametry w razie potrzeby

Nadal można nadawać parametrom nazwy i dodawać adnotacje typów, jeśli poprawia to czytelność.

let nums = [3, 1, 2]
let sorted = nums.sorted { (a: Int, b: Int) -> Bool in
    return a < b
}
print(sorted)

Wnioskowanie na podstawie kontekstu

Jeśli przypiszą Państwo domknięcie do zmiennej o określonym typie, typ zmiennej informuje domknięcie, jaki ma ono podpis.

let add: (Int, Int) -> Int = { a, b in a + b }
print(add(2, 3))

Domknięcie końcowe

Składnia domknięcia końcowego pozwala zachować wnioskowanie, a jednocześnie zwiększa czytelność miejsc wywołania.

let result = [5, 3, 8, 1].sorted { $0 > $1 }
print(result)

Wnioskowanie w reduce

W reduce typy akumulatora i elementu są wnioskowane na podstawie wartości początkowej i sekwencji.

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

Zwracanie wartości z domknięcia

Domknięcia zawierające jedno wyrażenie mogą pomijać słowo kluczowe return; zwracana jest wartość wyrażenia, a jej typ zostaje wywnioskowany.

let lengths = ["hi", "hello", "hey"].map { $0.count }
print(lengths)

Zmienna domknięcia z adnotacją typu

Gdy domknięcie jest przechowywane bez natychmiastowego wywołania, należy dodać adnotację jego typu, aby Swift mógł wywnioskować typ treści.

let transform: (String) -> Int = { $0.count }
print(transform("swift"))

Kiedy trzeba dodać adnotację

Jeśli otaczający kontekst nie dostarcza informacji o typie, Swift nie może wywnioskować typów parametrów domknięcia i trzeba określić je jawnie.

let isPositive: (Int) -> Bool = { n in n > 0 }
print(isPositive(5), isPositive(-3))

Szybkie sprawdzenie

Przetestuj wnioskowanie typów domknięć.

Podsumowanie

Domknięcia wnioskują typy parametrów i wartości zwracanych na podstawie kontekstu, takiego jak map, filter lub zmienna o określonym typie. Gdy typy są wnioskowane, należy używać skrótów $0/$1, a gdy kontekst nie jest dostępny, dodawać jawne adnotacje.

let f: (Int) -> Int = { $0 + 1 }
let xs = [1, 2, 3].map { $0 * 10 }
print(f(9), xs)

Często zadawane pytania

Czy lekcja „Inferencja w domknięciach” jest bezpłatna?

Tak — pełny tekst „Inferencja w domknięciach” 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 „Inferencja w domknięciach”?

Poznanie inferencji parametrów i wartości zwracanej w domknięciach. Ć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 „Inferencja w domknięciach”?

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. Jak działa inferencja typów
  2. Kiedy dodawać jawne adnotacje
  3. Inferencja na podstawie literałów
  4. Inferencja w domknięciach
← Powrót do Swift Academy