Middle
Ինչպես են աշխատում լամբդա արտահայտությունները 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 և այլն), կարճ և արտահայտիչ կոդ ստեղծելու համար: Կոմպիլյատորը օպտիմալացնում է դրանց օգտագործումը։