我可以在 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) }