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
- Jak działa inferencja typów
- Kiedy dodawać jawne adnotacje
- Inferencja na podstawie literałów
- Inferencja w domknięciach