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 kaipit. - 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ą.