Sobes.tech
Junior — Middle

Kotlin-ში 'by lazy' მემკვიდრეობის როლი რა არის და რომელ სცენარებში მისი გამოყენება მიზანშეწონილია?

sobes.tech AI

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

Kotlin-ში, by lazy მოდიფიკატორით განსაზღვრული მახასიათებელი ნელი ინიციალიზირებულია — ანუ, მნიშვნელობა გამოითვლება მხოლოდ პირველად მასზე მიმართვისას, არა ობიექტის შექმნისას. ეს სასარგებლოა, როდესაც ინიციალიზაცია რესურსების ხარჯია ან ყოველთვის საჭირო არაა.

გამოყენების მაგალითი:

val heavyResource by lazy {
    println("დაწყება")
    "შედეგი"
}

fun main() {
    println("წინათ")
    println(heavyResource) // აქ ხდება დაწყება
    println(heavyResource) // თავიდან არ ხდება თავიდან დაწყება
}

გამოყენების სცენარები:

  • დაგვიანებული ინიციალიზაცია ობიექტების, რომლებიც ყოველთვის საჭირო არაა.
  • შესრულების ოპტიმიზაცია.
  • უსაფრთხო ინიციალიზაცია მრავალთრედ გარემოში (ნაგულისხმევად, lazy უსაფრთხოა თრედებისთვის).