Sobes.tech
Middle

Ako fungujú lambda výrazy v programovacom jazyku Kotlin?

sobes.tech AI

Odpoveď od AI

Izrazi lambda v Kotlinu predstavljajo anonimne funkcije. Lahko jih posredujemo kot argumente ali shranimo v spremenljivke.

Ključne točke:

  • Sintaksa: Okvirji {}. Parametri so navedeni pred puščico ->, telo funkcije za njo. Če ni parametrov, je puščica opcijska.
  • Implicitno ime parametra it: Če ima lambda en parameter, ga ni treba eksplicitno deklarirati, je dostopen pod imenom it.
  • Vrednost povratka: Zadnja izraz v telesu lambde je njena vrednost povratka.
  • Zaprtja (Closures): Lambde lahko dostopajo in spreminjajo spremenljivke iz območja, v katerem so bile definirane.

Primeri:

// Lambda brez parametrov
val hello = { println("Hello, world!") }
hello() // Klic lambde

// Lambda z enim parametrom (izrecna deklaracija)
val square = { number: Int -> number * number }
println(square(5))

// Lambda z enim parametrom (uporaba `it`)
val increment = { it + 1 }
println(increment(10))

// Lambda z več parametri
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))

// Lambda kot argument funkcije višjega reda
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Prenos lambde

Primerjava z anonimnimi funkcijami (podrobneje):

Značilnost Lambda izraz Anonimna funkcija
Sintaksa {} fun (...)
Vrednost povratka Zadnji izraz return eksplicitno
return znotraj Vrne iz nadrejene funkcije (ne lokalni return) Vrne iz same anonimne funkcije (lokalni return)
Uporaba it Da (za en parameter) Ne

Lambde so široko uporabljene v Kotlinu, zlasti z funkcijami višjega reda (map, filter, forEach itd.), za ustvarjanje jedrnatega in izraznega kode. Prevajalnik jih optimizira.