我可以在 Kotlin 中用 Transformations.map 替换 _task.map 吗?
Can I replace _task.map with Transformations.map in Kotlin?
代码 A 用于 project。
我认为代码 B 与代码 A 相同,对吗?
代码A
val task: LiveData<Task?> = _task
val completed: LiveData<Boolean> = _task.map { input: Task? ->
input?.isCompleted ?: false
}
代码B
val task: LiveData<Task?> = _task
val completed = Transformations.map(_task){input: Task? ->
input?.isCompleted ?: false
}
是的,它完全相同,因为 LiveData.map
是从 Transformations.kt
文件提供的扩展函数,它是依赖项的一部分:
def lifecycle_version = "2.2.0"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
这就是 map
扩展函数所做的,与代码 B 完全相同:
inline fun <X, Y> LiveData<X>.map(crossinline transform: (X) -> Y): LiveData<Y> =
Transformations.map(this) { transform(it) }
代码 A 用于 project。
我认为代码 B 与代码 A 相同,对吗?
代码A
val task: LiveData<Task?> = _task
val completed: LiveData<Boolean> = _task.map { input: Task? ->
input?.isCompleted ?: false
}
代码B
val task: LiveData<Task?> = _task
val completed = Transformations.map(_task){input: Task? ->
input?.isCompleted ?: false
}
是的,它完全相同,因为 LiveData.map
是从 Transformations.kt
文件提供的扩展函数,它是依赖项的一部分:
def lifecycle_version = "2.2.0"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
这就是 map
扩展函数所做的,与代码 B 完全相同:
inline fun <X, Y> LiveData<X>.map(crossinline transform: (X) -> Y): LiveData<Y> =
Transformations.map(this) { transform(it) }