Sobes.tech
Middle

რომელი სტანდარტული დელეგატები იცით?

sobes.tech AI

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

  • by lazy — հատկության ուշացման սկզբնականացման համար օգտագործվում է: Արժեքը հաշվարկվում է առաջին դիմումի ժամանակ և պահվում է կեշումում:
    val lazyValue: String by lazy {
        println("initialized") // Միայն առաջին դիմումի ժամանակ կիրականացվի
        "Hello"
    }
    
  • Delegates.observable — դելեգատ, որը թույլ է տալիս կատարել գործողություն յուրաքանչյուր հատկության արժեքի փոփոխության ժամանակ:
    import kotlin.properties.Delegates
    
    var name: String by Delegates.observable("սկզբնական արժեք") {
        prop, old, new ->
        println("${prop.name} արժեքը փոխվեց $old-ից $new-ին")
    }
    
  • Delegates.vetoable — դելեգատ, որը թույլ է տալիս խոչընդոտել հատկության արժեքի փոփոխությունը և չեղարկել այն որոշ պայմանների հիման վրա:
    import kotlin.properties.Delegates
    
    var age: Int by Delegates.vetoable(10) {
        prop, old, new ->
        new >= 0 // Միայն բացասական արժեքները թույլատրվում են
    }