Spec-Zone.ru › Kotlin 1.6

setValue

kotlin-stdlib / kotlin / setValue
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
operator fun <V> KMutableProperty0<V>.setValue(
    thisRef: Any?, 
    property: KProperty<*>, 
    value: V)

Оператор расширения, позволяющий делегировать изменяемое свойство типа V ссылке на изменяемое свойство того же типа V.

Получатель

Ссылка на изменяемое свойство типа V. Ссылка не имеет получателя, т. е. она либо ссылается на свойство верхнего уровня, либо имеет получателя, привязанного к ней.

Пример:

class Login(val username: String, var incorrectAttemptCounter: Int = 0)
val defaultLogin = Login("Admin")
var defaultLoginAttempts by defaultLogin::incorrectAttemptCounter
// equivalent to
var defaultLoginAttempts: Int
    get() = defaultLogin.incorrectAttemptCounter
    set(value) { defaultLogin.incorrectAttemptCounter = value }
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
operator fun <T, V> KMutableProperty1<T, V>.setValue(
    thisRef: T, 
    property: KProperty<*>, 
    value: V)

Оператор расширения, позволяющий делегировать изменяемое свойство-член или свойство-расширение типа V ссылке на изменяемое свойство-член или свойство-расширение того же типа V.

Получатель

Ссылка на свойство для чтения или изменяемое свойство типа V или его подтипа. Ссылка имеет несвязанный получатель типа T.

Пример:

class Login(val username: String, var incorrectAttemptCounter: Int)
var Login.attempts by Login::incorrectAttemptCounter
// equivalent to
var Login.attempts: Int
    get() = this.incorrectAttemptCounter
    set(value) { this.incorrectAttemptCounter = value }

© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/set-value.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API