Spec-Zone.ru › Kotlin 1.4

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–2020 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