0Pricing
Kotlin Academy · Lekcja

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

  1. Czym jest lambda? Składnia i typy
  2. Przekazywanie lambd do funkcji
  3. it: parametr niejawny
  4. filter, map i find dla kolekcji
← Powrót do Kotlin Academy