Какие параметры получает оператор getValue у делегата

«Какие параметры получает оператор getValue у делегата» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Оператор getValue принимает три параметра:

operator fun getValue(thisRef: Any?, property: KProperty<*>): T
  1. thisRef - ссылка на объект-владелец свойства (может быть null для top-level свойств)
  2. property - метаинформация о свойстве (имя, модификаторы и т.д.)
  3. Возвращаемое значение - значение свойства типа T

Пример делегата:

class ExampleDelegate {
    operator fun getValue(thisRef: Any?, prop: KProperty<*>): String {
        return "Value from ${prop.name}"
    }
}
val name by ExampleDelegate() // при обращении вернет "Value from name"