Sobes.tech
Junior — Middle

რისი კონტექსტში ხორციელდება lazy() ფუნქციის გამოძახება?

sobes.tech AI

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

Android-ში (ძირითადად Kotlin კონტექსტში) lazy() ფუნქცია გამოიყენება ცვლადების მელანქოლური (lazy) ინიციალიზაციისთვის. lazy()-ის გამოძახება ხდება თვისების განსაზღვრის დროს, მაგრამ lazy-ს გადაცემული ლამბდა მხოლოდ პირველ მიმართვაზე იმუშავებს. ამგვარად, lazy-ში არსებული კოდი შესრულდება პირველ მიმართვაზე მნიშვნელობის, არა ობიექტის ან კლასის შექმნის დროს.

მაგალითი:

val myValue: String by lazy {
    println("მნიშვნელობის გამოთვლა")
    "გამარჯობა, მსოფლიო!"
}

ფუნქცია main() {
    println("პირველ მიმართვამდე")
    println(myValue) // აქ იძახება lazy-ის შიგნით ლამბდა
    println(myValue) // მნიშვნელობა უკვე გამოთვლილია, ლამბდა აღარ იძახება
}

ამ მაგალითში, lazy-ის შიგნით ლამბდა მხოლოდ ერთხელ, პირველ მიმართვაზე შესრულდება.