Middle
Πώς λειτουργούν οι εκφράσεις lambda στη γλώσσα προγραμματισμού Kotlin;
sobes.tech AI
Απάντηση από AI
Οι εκφράσεις lambda στο Kotlin αντιπροσωπεύουν ανώνυμες συναρτήσεις. Μπορούν να περαστούν ως ορίσματα ή να αποθηκευτούν σε μεταβλητές.
Βασικά σημεία:
- Σύνταξη: Αγκύλες
{}. Τα ορίσματα δηλώνονται πριν από το βέλος->, το σώμα της συνάρτησης μετά. Αν δεν υπάρχουν ορίσματα, το βέλος είναι προαιρετικό. - Έμμεσο όνομα
it: Αν η lambda έχει ένα μόνο όρισμα, δεν χρειάζεται να το δηλώσετε ρητά, θα είναι διαθέσιμο με το όνομαit. - Τιμή επιστροφής: Η τελευταία έκφραση στο σώμα της lambda είναι η τιμή επιστροφής της.
- Κλεισίματα (Closures): Οι lambdas μπορούν να έχουν πρόσβαση και να τροποποιούν μεταβλητές από το πεδίο ορατότητας στο οποίο ορίστηκαν.
Παραδείγματα:
// Lambda χωρίς ορίσματα
val hello = { println("Hello, world!") }
hello() // Κλήση της lambda
// Lambda με ένα όρισμα (ρητή δήλωση)
val square = { number: Int -> number * number }
println(square(5))
// Lambda με ένα όρισμα (χρήση του 'it')
val increment = { it + 1 }
println(increment(10))
// Lambda με πολλαπλά ορίσματα
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))
// 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
Σύγκριση με ανώνυμες συναρτήσεις (περισσότερες λεπτομέρειες):
| Χαρακτηριστικό | Lambda έκφραση | Ανώνυμη συνάρτηση |
|---|---|---|
| Σύνταξη | {} |
fun (...) |
| Τιμή επιστροφής | Τελευταία έκφραση | Ρητό return |
return μέσα |
Επιστρέφει από την ανώτερη συνάρτηση (μη τοπική επιστροφή) | Επιστρέφει από την ανώνυμη συνάρτηση (τοπική επιστροφή) |
Χρήση it |
Ναι (για ένα όρισμα) | Όχι |
Οι lambdas χρησιμοποιούνται ευρέως στο Kotlin, ειδικά με ανώτερες συναρτήσεις (map, filter, forEach, κ.λπ.), για δημιουργία συμπυκνωμένου και εκφραστικού κώδικα. Ο μεταγλωττιστής τις βελτιστοποιεί.