Przekazywanie lambd do funkcji
Przekazuj lambdy jako argumenty i korzystaj ze składni lambdy końcowej.
Przekazywanie lambd do funkcji to bezpłatna lekcja Kotlin 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 Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.
Funkcje przyjmujące lambdy
Deklarowanie funkcji wyższego rzędu
fun applyTwice(n: Int, op: (Int) -> Int): Int {
return op(op(n))
}
println(applyTwice(3, { it * 2 })) // 12Składnia lambdy końcowej
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
// Standard:
applyTwice(3, { it * 2 })
// Trailing lambda:
applyTwice(3) { it * 2 }Lambda końcowa bez nawiasów
fun execute(block: () -> Unit) = block()
// With parens:
execute({ println("Hello") })
// Without parens (idiomatic):
execute { println("Hello") }Przekazywanie zmiennej zawierającej lambdę
val double = { n: Int -> n * 2 }
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(5, double)) // 20Referencje do funkcji z użyciem ::
fun triple(n: Int) = n * 3
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(2, ::triple)) // 18Wiele parametrów lambda
fun transform(
value: Int,
before: (Int) -> Int,
after: (Int) -> Int
) = after(before(value))
println(transform(5, { it * 2 }, { it + 1 })) // 11Przekazywanie lambdy do filter
val numbers = listOf(1, 2, 3, 4, 5, 6)
val evens = numbers.filter { it % 2 == 0 }
println(evens) // [2, 4, 6]Łączenie funkcji wyższego rzędu
val result = (1..10)
.filter { it % 2 != 0 } // odds
.map { it * it } // square
.take(3) // first 3
println(result) // [1, 9, 25]Przechwytywanie zmiennych przez lambdę
var total = 0
listOf(1, 2, 3, 4).forEach { total += it }
println(total) // 10Zwracanie lambdy z funkcji
fun multiplierOf(factor: Int): (Int) -> Int {
return { n -> n * factor }
}
val double = multiplierOf(2)
val triple = multiplierOf(3)
println(double(5)) // 10
println(triple(5)) // 15Szybkie sprawdzenie
Podsumowanie
Często zadawane pytania
Czy lekcja „Przekazywanie lambd do funkcji” jest bezpłatna?
Tak — pełny tekst „Przekazywanie lambd do funkcji” 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 Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Przekazywanie lambd do funkcji”?
Przekazuj lambdy jako argumenty i korzystaj ze składni lambdy końcowej. Ćwiczysz Kotlin 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ąć Kotlin Academy?
Nie wymagamy żadnego doświadczenia. Kotlin 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 „Przekazywanie lambd do funkcji”?
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 Kotlin Academy?
Tak. Każda lekcja Kotlin 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
- Czym jest lambda? Składnia i typy
- Przekazywanie lambd do funkcji
- it: parametr niejawny
- filter, map i find dla kolekcji