是否可以将数据类的实例解构为类的属性?

Héc*_*tor 3 kotlin

我有一个数据类MyDataClass

data class MyDataClass(val a: Int, val b: Int)
Run Code Online (Sandbox Code Playgroud)

和一个MyClass具有两个属性的类。我想解构MyDataClass, 所以a和的实例b被分配给MyClass属性,而不是声明新变量:

class MyClass {

  val a: Int
  val b: Int

  init {
    val mdc = MyDataClass(1, 4)
    (a, b) = mdc //error
  }

}
Run Code Online (Sandbox Code Playgroud)

Lov*_*vis 5

不,解构声明只允许用于局部变量和 lambda 参数。

此外,它们仅用于一次创建多个局部变量。Soval (a, b) = mdc是允许的,但 (a, b) = mdc语法无效,即使ab不是属性。