Sobes.tech
Middle

როგორ მუშაობს ლამბდა გამოთქმები Kotlin-ის პროგრამირების ენაში?

sobes.tech AI

პასუხი AI-სგან

კოტლინში ლამბდა გამოხატულებები წარმოადგენს ანონიმურ ფუნქციებს. ისინი შეიძლება გადაეცეს როგორც არგუმენტი ან შეინახოს ცვლადში.

ძირითადი მახასიათებლები:

  • სინტაქსი: {} ფიგურული ბრაკეტები. პარამეტრები მითითებულია სლაკი ->-მდე, ფუნქციის სხეული შემდეგ. თუ პარამეტრები არ არის, სლაკი აუცილებელი არაა.
  • უცნობი სახელი 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 და სხვა), მოკლე და გამოხატული კოდის შესაქმნელად. კომპილატორი ოპტიმიზირებს მათი გამოყენებას.