Middle
Чӣ гуна ифодаҳои lambda дар забони барномасозии Kotlin кор мекунанд?
sobes.tech AI
Ҷавоб аз AI
Лямбда-экспрессиялар Kotlin-да анонимдүү функциялар болуп саналат. Алар аргумент катары өткөрүлүшү мүмкүн же өзгөрмөдө сакталат.
Негизги учурлар:
- Синтаксис:
{}фигуралык жактар. Параметрлер стрелка->чейин көрсөтүлөт, функциянын денеси андан кийин. Эгер параметрлер жок болсо, стрелка зарыл эмес. - Жарандын аты
itкатары белгиленет: Эгер лямбда бир параметр алса, аны ачык көрсөтүүнүн кажети жок, жана алitаты менен жеткиликтүү. - Кайткан мааниси: Лямбда денесиндеги акыркы билдирүү анын кайтарым мааниси болуп саналат.
- Кыскача (Closures): Лямбда өздөрү аныкталган аймактан өзгөрмөлөргө жеткиликтүү жана аларды өзгөртө алат.
Мисалдар:
// Параметрлерсиз лямбда
val hello = { println("Hello, world!") }
hello() // Лямбданы чакыруу
// Бир параметрлүү лямбда (ачык көрсөтүү)
val square = { number: Int -> number * number }
println(square(5))
// Бир параметрлүү лямбда (`it` колдонуу)
val increment = { it + 1 }
println(increment(10))
// Бир нече параметрлүү лямбда
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))
// Жогорку деңгээлдеги функциянын аргумент катары лямбда
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Лямбда өткөрүү
Анонимдүү функциялар менен салыштыруу (жана кеңири):
| Өзгөчөлүк | Лямбда-экспрессиясы | Анонимдүү функциясы |
|---|---|---|
| Синтаксис | {} |
fun (...) |
| Кайткан мааниси | Акыркы билдирүү | Ачык return |
return ичинде |
Ата-энесинин функциясынан кайтарат (нелокальный return) | Анонимдүү функциядан кайтарат (локальный return) |
it колдонуу |
Ооба (бир параметр үчүн) | Жок |
Лямбда-экспрессиялар Kotlinда кеңири колдонулат, өзгөчө жогорку деңгээлдеги функциялар менен (map, filter, forEach жана башка), кыска жана түшүнүктүү код түзүү үчүн. Компилятор алардын колдонулушун оптималдаштырат.