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 // Միայն բացասական արժեքները թույլատրվում են
    }