將物件n個屬性解構給多個變數,如:
var (name,pass)=user(物件)
要解構多少屬性給變數,物件類必須至少定義多少個componentn(n從1開始)方法,並且該方法必須使用operator修飾;這兒為什麼說至少呢?因為左邊變數個數可以小於componentn方法個數,即只是將需要的屬性解構給變數;
如:
class dog constructor()
fun eat(food: string) ")
}fun sleep()
operator fun component1():string
operator fun component2():int
}
1、將所有屬性解構給變數:
var (name,age)=dog()
會將component1()方法返回變數結構給name,會將component2()返回的屬性解構變數age;
2、將部分屬性結構給變數:
var(name)=dog()
只會將component1()解構給name變數
3、將後面的componentn()解構變數,前面的不用解構給變數,可以使用「_」佔位符:
var (_,age)=dog()
這是就只會將component2()方法返回值解構給age屬性
通過上面介紹的解構,可以讓函式返回多個值其本質是返回乙個支援解構的物件;將函式返回的物件解構為多個變數
如:
fun main(args: array)
fun fn():school
class school
operator fun component1():string
operator fun component2():int
}
var map= hashmapof(pair(1,"leslie"), pair(2,"lin"))
map.mapvalues " }
map.mapvalues ") }
注意:lambda表示式中包含兩個引數和使用解構區別:
lambda表示式引數列表不需要使用圓括號的,而使用解構替換物件作為引數是,解構是需要使用圓括號「()」的,即只要lambda表示式引數列表中有圓括號就表示使用的解構
如:
Kotlin學習筆記5 1 其他 解構宣告
kotlin官網 other destructuring declarations 解構宣告可以方便地將乙個物件分解成多個變數 val name,age person println name println age 上例中,解構宣告會編譯成 val name person.component1 v...
Kotlin的解構定義
眾所周知,kotlin是一種劃時代的程式語言,犀利的語法減少了我們很多的工作量。解構定義就是如此。變數的解構定語法義如下 val name,age jane解構語法可以快速地將物件的各個屬性賦值給一串變數。就比如上例,將jane這個人的名字與年齡屬性賦值給name和age這兩個變數。如果要解構,必須...
Kotlin入門筆記
2017 年 5 月的 google i o 中宣布 kotlin 這門程式語言成為 android 新官方語言 以fun為定義方法的關鍵字 引數型別放在引數名之後,以冒號分割 不用再class裡面宣告方法 沒有省略號 語法糖 system.out.println 封裝為println arrays...