Kotlin中的解構(gòu)
Kotlin中解構(gòu)的意思是,允許一個類去拆解,然后分別賦值。詳見下面的代碼:
定義個Boy類,使用operator關(guān)鍵字,去聲明component1() 和component2()函數(shù)
這個函數(shù)名不能修改,component后面的1 和 2 的對應(yīng)就是要拆解的第一個屬性,和第二個屬性,如果有多個屬性需要結(jié)構(gòu),可以繼續(xù)增加component3() component4()等...
class Boy(var age: Int,var name: String) {
operator fun component1() = age
operator fun component2() = name
}
fun main(args: Array<String>) {
//1.首先創(chuàng)建一個Boy對象
var boy = Boy(11,"213")
//2.使用Kotlin中解構(gòu),將boy對象解構(gòu)
//將對象中的屬性分別賦值給age和name,其中age對應(yīng) component1()函數(shù)返回的屬性
//name 對應(yīng) component2()返回的屬性
var(age,name) = boy
println("age:$age")
println("name:$name")
//解構(gòu)可用于循環(huán)Map集合
var map:Map<Int,String> = mapOf<Int,String>(1 to "111",2 to "222")
for ((k,v) in map){
println("$k ---- $v")
}
}