Middle
Как работят лямбда изразите в езика за програмиране Kotlin?
sobes.tech AI
Отговор от AI
Изразите lambda в Kotlin представляват анонимни функции. Те могат да бъдат предавани като аргументи или съхранявани в променливи.
Ключови моменти:
- Синтаксис: Скоби
{}. Параметрите се посочват преди стрелката->, тялото на функцията след нея. Ако няма параметри, стрелката е опционална. - Неявно име на параметъра
it: Ако lambda има един параметър, не е необходимо да го обявявате явно, той ще бъде достъпен под иметоit. - Стойност на връщане: Последното изражение в тялото на lambda е нейното стойност на връщане.
- Затваряния (Closures): Lambda може да има достъп и да променя променливи от обхвата, в който е дефинирана.
Примери:
// Lambda без параметри
val hello = { println("Hello, world!") }
hello() // Викаме lambda
// Lambda с един параметър (явно обявяване)
val square = { number: Int -> number * number }
println(square(5))
// Lambda с един параметър (използване на `it`)
val increment = { it + 1 }
println(increment(10))
// Lambda с няколко параметъра
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))
// Lambda като аргумент на функция с високо ниво
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Предаване на lambda
Сравнение с анонимни функции (подробно):
| Характеристика | Lambda израз | Анонимна функция |
|---|---|---|
| Синтаксис | {} |
fun (...) |
| Стойност на връщане | Последното изражение | Явно return |
return вътре |
Връща от родителската функция (нелокален return) | Връща от самата анонимна функция (локален return) |
Използване на it |
Да (за един параметър) | Не |
Lambda-изразите се използват широко в Kotlin, особено с функции с високо ниво (map, filter, forEach и др.), за създаване на лаконичен и изразителен код. Компилаторът ги оптимизира.