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 // Жана терс эмес маанилер гана уруксат берилет
    }