本文方法及代码示例基于Kotlin 2.1.20 Released
getValue
所在包 kotlin.getValue
,其相关用法介绍如下:
用法一
kotlin
operator fun <V> KProperty0<V>.getValue(
thisRef: Any?,
property: KProperty<*>
): V
一个扩展运算符,允许将类型为 V 的只读属性委托给对类型为 V 的属性或其子类型的属性引用。
接收者
对 V 类型或其子类型的只读或可变属性的属性引用。引用没有接收器,即它引用顶级属性或将接收器绑定到它。
代码示例:
kotlin
class Login(val username: String)
val defaultLogin = Login("Admin")
val defaultUsername by defaultLogin::username
// equivalent to
val defaultUserName get() = defaultLogin.username
用法二
kotlin
operator fun <T, V> KProperty1<T, V>.getValue(
thisRef: T,
property: KProperty<*>
): V
一个扩展运算符,允许将类型为 V 的只读成员或扩展属性委托给对类型为 V 或其子类型的成员或扩展属性的属性引用。
接收者
对 V 类型或其子类型的只读或可变属性的属性引用。该引用具有类型为 T 的未绑定接收器。
代码示例:
kotlin
class Login(val username: String)
val Login.user by Login::username
// equivalent to
val Login.user get() = this.username
用法三
kotlin
operator fun <T> Lazy<T>.getValue(
thisRef: Any?,
property: KProperty<*>
): T
此扩展允许使用 Lazy 实例进行属性委托:val property: String by lazy { initializer }
相关方法
- Kotlin contentToString用法及代码示例
- Kotlin dropWhile用法及代码示例
- Kotlin distinct用法及代码示例
- Kotlin code用法及代码示例
- Kotlin Map:mapOf()用法及代码示例
- Kotlin distinctBy用法及代码示例
- Kotlin digitToChar用法及代码示例
- Kotlin ifBlank用法及代码示例
- Kotlin all用法及代码示例
- Kotlin digitToIntOrNull用法及代码示例
- Kotlin dropLast用法及代码示例
- Kotlin dropLastWhile用法及代码示例
- Kotlin associateBy用法及代码示例
- Kotlin groupingBy用法及代码示例
- Kotlin groupBy用法及代码示例
- Kotlin getOrElse用法及代码示例
- Kotlin getOrPut用法及代码示例