Sobes.tech
Junior — Middle

Ի՞նչ արգումենտներ և պարամետրեր է ընդունում getValue մեթոդը դելեգատ օբյեկտում։

sobes.tech AI

Պատասխան AI-ից

Kotlin-ում getValue մեթոդը դելեգատային օբյեկտի մեջ ընդունում է երեք պարամետր.

  1. thisRef — օբյեկտը, որի վրա կիրառվում է դելեգատը (հաճախ՝ այն օրինակն, որտեղ հայտարարված է հատկությունը): Պարամետրի տիպը համապատասխանում է հատկության տիրոջ տիպին:
  2. propertyKProperty<*> տիպի օբյեկտ, որը պարունակում է ինֆորմացիա հատկության մասին (օրինակ՝ հատկության անունը):

Մեթոդի ստորագրությունը հետևյալն է:

operator fun getValue(thisRef: Any?, property: KProperty<*>): T

որտեղ T — հատկության վերադարձվող արժեքի տիպը:

Օրինակ:

class Delegate {
    operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
        return "Արժեք հատկության '${property.name}' համար"
    }
}

class Example {
    val prop: String by Delegate()
}

fun main() {
    val e = Example()
    println(e.prop) // Տպում է՝ Արժեք հատկության 'prop' համար
}