Sobes.tech
Middle

Kotlin dasturlash tilida lambda ifodalar qanday ishlaydi?

sobes.tech AI

AIdan javob

Kotlin'da lambda ifadeleri anonim funksiyalardır. Argüman kimi ötürülə və ya dəyişəndə saxlanıla bilər.

Əsas məqamlar:

  • Sintaksis: Möhtəşəm {}. Parametrlər -> oxundan əvvəl göstərilir, funksiyanın gövdəsi sonra. Əgər parametr yoxdursa, oxu seçimi ola bilər.
  • İmplicit it parametri adı: Lambda tək parametrə malikdirsə, onu açıq elan etməyə ehtiyac yoxdur, it adı ilə mövcuddur.
  • Geri dönüş dəyəri: Lambda gövdəsindəki son ifadə onun geri dönüş dəyəridir.
  • Bağlamalar (Closures): Lambdalar təyin olunduğu sahədən dəyişənlərə daxil ola və onları dəyişə bilər.

Nümunələr:

// Parametrsiz lambda
val hello = { println("Hello, world!") }
hello() // Lambda çağırışı

// Bir parametrli lambda (açıq elan)
val square = { number: Int -> number * number }
println(square(5))

// `it` istifadə edən lambda
val increment = { it + 1 }
println(increment(10))

// Bir neçə parametrli lambda
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))

// Yüksək səviyyəli funksiyanın arqumenti kimi 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 ötürülməsi

Anonim funksiyalarla müqayisə (daha ətraflı):

Xüsusiyyət Lambda ifadəsi Anonim funksiya
Sintaksis {} fun (...)
Geri dönüş dəyəri Son ifadə Açıq return istifadə edilə bilər
return içində Valideyn funksiyadan geri dönər (lokal olmayan geri dönüş) Anonim funksiyadan geri dönər (lokal geri dönüş)
it istifadə edilər Bəli (bir parametr üçün) Xeyr

Lambda ifadələri Kotlin-də geniş istifadə olunur, xüsusən də map, filter, forEach və s. kimi yüksək səviyyəli funksiyalarla, qısa və ifadəli kod yaratmaq üçün. Kompilyator onların istifadəsini optimallaşdırır.