Sobes.tech
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, κ.λπ.), για δημιουργία συμπυκνωμένου και εκφραστικού κώδικα. Ο μεταγλωττιστής τις βελτιστοποιεί.