在var或val之后有两个名字的地方,Kotlin语法叫什么:var (name1, name2) =



我下载了一个项目,我不太确定下面这行到底是做什么的:

val (episode, setEpisode) = remember { mutableStateOf<EpisodeDetail?>(null) }

我唯一不明白的是为什么在"值"后面有两个名字。词。我试着谷歌一下,但我真的不知道语法的名称。

这叫做解构声明

https://kotlinlang.org/docs/destructuring-declarations.html

当你有一个对象时,你可能在JavaScript中见过类似的东西,你可以用下面的

提取变量的键
const { key1, key2 } = { key1:"first", key2:"second", ignored:"third" };
console.log(key1, key2) // first second

如果你有一个数据类Kotlin将创建组件Functions for you.

class MyClass (val myStr: String, val myInt: Int, val myBool: Boolean) {
operator fun component1(): String = myStr
operator fun component2(): Int = myInt
operator fun component3(): Boolean = myBool
}
fun main() {
val x = MyClass("Hello", 5, false)
val (y, _, z) = x // use _ to ignore values you don't need
println(y) // Hello
println(z) // false
}

与使用键名的Javascript不同,Kotlin数据类使用字段排序(通过定义自己的组件函数(可以交换析构的顺序)。