Sobes.tech
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 жана башка), кыска жана түшүнүктүү код түзүү үчүн. Компилятор алардын колдонулушун оптималдаштырат.