Sobes.tech
Junior — Middle

Σε ποιο πλαίσιο πραγματοποιείται η κλήση της λειτουργίας lazy();

sobes.tech AI

Απάντηση από AI

Η λειτουργία lazy() στο Android (συχνότερα στο πλαίσιο του Kotlin) χρησιμοποιείται για την τεμπέλικη (lazy) αρχικοποίηση μεταβλητών. Η κλήση της λειτουργίας lazy() συμβαίνει τη στιγμή ορισμού της ιδιότητας, αλλά η lambda που περνάει στο lazy εκτελείται μόνο κατά την πρώτη πρόσβαση σε αυτήν την ιδιότητα. Έτσι, ο κώδικας μέσα στο lazy εκτελείται στο πλαίσιο της πρώτης πρόσβασης στην τιμή, και όχι κατά τη δημιουργία του αντικειμένου ή της κλάσης.

Παράδειγμα:

val myValue: String by lazy {
    println("Υπολογισμός τιμής")
    "Γειά σου, Κόσμε!"
}

fun main() {
    println("Πριν από την πρώτη πρόσβαση")
    println(myValue) // Εδώ καλείται η lambda μέσα στο lazy
    println(myValue) // Η τιμή έχει ήδη υπολογιστεί, η lambda δεν καλείται ξανά
}

Σε αυτό το παράδειγμα, η lambda μέσα στο lazy θα εκτελεστεί μόνο μία φορά κατά την πρώτη πρόσβαση στο myValue.