Czym jest lambda? Składnia i typy
Poznaj wyrażenia lambda: składnię, typy parametrów i wartości zwracane.
Czym jest lambda? Składnia i typy to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 1 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.
Lambdy w jednym zdaniu
Lambda to funkcja anonimowa — wartość funkcyjna, którą można przechowywać w zmiennej, przekazywać do innej funkcji lub zwracać.
Podstawowa składnia lambdy
Lambdę zapisuje się między klamrami: parametry znajdują się po lewej stronie ->, a ciało po prawej.
fun main() {
val greet = { name: String -> "Hello, $name!" }
println(greet("World"))
}Lambda bez parametrów
Jeśli nie ma parametrów, można całkowicie je pominąć. Ostatnie wyrażenie jest wartością zwracaną.
fun main() {
val random = { (1..6).random() }
println(random()) // some number 1..6
}Lambda z wieloma parametrami
Parametry należy oddzielać przecinkami. Można określić ich typy lub skorzystać z wnioskowania na podstawie kontekstu.
fun main() {
val sum = { a: Int, b: Int -> a + b }
println(sum(3, 4)) // 7
}Wnioskowanie typów lambdy
Gdy lambda jest przypisana do zmiennej o określonym typie, można pominąć typy parametrów.
fun main() {
val multiply: (Int, Int) -> Int = { a, b -> a * b }
println(multiply(6, 7)) // 42
}Adnotacje typów lambdy
Typ (Int, Int) -> Int opisuje funkcję, która przyjmuje dwie wartości Int i zwraca wartość Int. W ten sposób określa się typy lambd.
fun main() {
val op: (Int) -> Int = { x -> x * x }
println(op(5)) // 25
}Lambda zwracająca Unit
Jeśli lambda nie zwraca użytecznej wartości, jej typ to () -> Unit. Unit jest odpowiednikiem void w Kotlinie.
fun main() {
val log: (String) -> Unit = { msg -> println("[LOG] $msg") }
log("Hello")
log("World")
}Przechowywanie lambd na liście
Lambda jest wartością — można je gromadzić i wywoływać później.
fun main() {
val operations: List<(Int) -> Int> = listOf({ it + 1 }, { it * 2 }, { it - 3 })
for (op in operations) println(op(10))
// 11, 20, 7
}Zwracanie lambdy
Funkcja może zwracać lambdę, która przechwytuje swoje otoczenie w domknięciu.
fun makeAdder(n: Int): (Int) -> Int = { x -> x + n }
fun main() {
val add5 = makeAdder(5)
println(add5(10)) // 15
println(add5(20)) // 25
}Lambda przechwytująca zmienne
Lambda może odczytywać zmienne z otaczającego zakresu i (w przypadku var) je modyfikować.
fun main() {
var counter = 0
val increment = { counter++ }
increment(); increment(); increment()
println(counter) // 3
}Lambdy a funkcje anonimowe
Kotlin udostępnia również funkcje anonimowe w stylu fun(x: Int): Int = x * 2. Działają one podobnie jak lambdy, ale obsługują jawnie określone typy zwracane i oznaczone etykietą instrukcje return.
fun main() {
val square = fun(x: Int): Int { return x * x }
println(square(8)) // 64
}Szybkie sprawdzenie
Co opisuje typ (Int) -> String?
Podsumowanie
Lambda to funkcja anonimowa zapisana jako { params -> body }. Jej typ ma postać (ParamTypes) -> ReturnType. Lambdy można przechowywać, przekazywać, zwracać oraz przechwytywać za ich pomocą zmienne z otaczającego zakresu.
Często zadawane pytania
Czy lekcja „Czym jest lambda? Składnia i typy” jest bezpłatna?
Tak — pełny tekst „Czym jest lambda? Składnia i typy” 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 „Czym jest lambda? Składnia i typy”?
Poznaj wyrażenia lambda: składnię, typy parametrów i wartości zwracane. Ć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 1 z 4.
Ile czasu zajmuje lekcja „Czym jest lambda? Składnia i typy”?
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