Sobes.tech
Middle

Kaip veikia lambda išraiškos Kotlin programavimo kalboje?

sobes.tech AI

Atsakymas iš AI

Kotlin'e lambda išraiškos yra anonimės funkcijos. Jas galima perduoti kaip argumentą arba saugoti kintamajame.

Pagrindiniai punktai:

  • Sintaksė: {} skliaustai. Parametrai nurodomi prieš rodyklę ->, funkcijos turinys po ja. Jei parametrų nėra, rodyklė nėra privaloma.
  • Nepastebimas pavadinimas it: Jei lambda turi vieną parametrą, jį galima nenurodyti aiškiai, ir jis bus pasiekiamas kaip it.
  • Grąžinama reikšmė: Paskutinis išraiškos lambda viduje yra jos grąžinama reikšmė.
  • Užbaigos (Closures): Lambda gali pasiekti ir keisti kintamuosius, kurie buvo apibrėžti jos apylinkėje.

Pavyzdžiai:

// Be parametrų lambda
val hello = { println("Hello, world!") }
hello() // Lambda iškvietimas

// Su vienu parametru (aiškus apibrėžimas)
val square = { number: Int -> number * number }
println(square(5))

// Su vienu parametru (naudojant `it`)
val increment = { it + 1 }
println(increment(10))

// Su keliais parametrais
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))

// Kaip aukšto lygio funkcijos argumentas
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Perdavimo lambda

Palyginimas su anonimėmis funkcijomis (daugiau detalių):

Savybė Lambda išraiška Anoniminė funkcija
Sintaksė {} fun (...)
Grąžinama reikšmė Paskutinis išraiškos Aiškus return
return viduje Grąžina iš tėvinės funkcijos (ne lokaliai) Grąžina iš pačios anoniminės funkcijos (lokaliai)
it naudojimas Taip (vienam parametrui) Ne

Lambda išraiškos plačiai naudojamos Kotlin, ypač su aukšto lygio funkcijomis (map, filter, forEach ir kt.), siekiant sukurti glaustą ir išraiškingą kodą. Kompiliatorius optimizuoja jų naudojimą.