Kotlin筆記 七 二 解構 md

2021-08-28 11:41:31 字數 1293 閱讀 2496

將物件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...