重构声明

有时候向一个对象添加一些变量是很方便的,比如:

val (name, age) = person

这样的语法叫做重构声明,一个重构声明会立刻创建多个变量。我们声明了两个新的变量:name和age,我们可以独立的使用它们。

println(name)
println(age)

一个重构声明被编译成如下的代码:

val name = person.component1()
val age = person.component2()

component1()和component2()函数是另一个便利原则的例子,被广泛使用(可以查看操作符+、*、for循环等)。重构声明的右边语句可以是任何东西,只要是它的component函数可以被调用都行。当然,也可能有component3() 、component4()等。

需要注意的是componentN()函数需要被标记为operator,这样才代表在重构声明中可以使用该函数。

重构声明同样可以使用在for循环中:

for ((a, b) in collection) { ... }

变量a和b的值为集合元素的component1()和component2()方法返回值。

results matching ""

    No results matching ""