Lanbda程式設計

2021-10-08 15:50:57 字數 1983 閱讀 1652

list集合

集合的初始化可以用listof()函式來完成。如

val list=

listof(,

"banana"

,"orange"

,"pear"

,"grape"

)

再用for-in迴圈來遍歷這個集合

fun

main()

}

注:listof()函式建立的是乙個不可變的集合。即該集合只能用於讀取,無法進行新增、修改或刪除操作。

如果要建立可變集合就要用mutablelistof函式。

fun

main()

}

list.add 表示新增。list.remove表示刪除。

set集合

set集合基本上同list集合,setof(),mutablesetof()的用法同上,但是set集合中的元素無法保證有序。

map集合

mapof()函式中,我們可以直接傳入初始化的鍵值對組合來完成map集合的建立。

fun

main()

}

鍵值對組合用to關鍵字進相關聯。for-in迴圈新用法。

例:找到集合中單詞最長的那個水果。

val list=

listof(,

"banana"

,"orange"

,"pear"

,"grape"

)val lambda=

val max=list.

maxby

(lambda)

lambda表示式的語法結構:

lanbda就是一小段可以作為引數傳遞的**。

maxby函式的工作原理就是根據我們傳入的條件來遍歷集合,從而找到該條件下的最大值。

我們可以直接將lambda表示式傳入maxby函式中,當lambda引數是函式的最後乙個引數時,可以將lambda表示式移到括號外面,如果lambda引數是函式唯一乙個引數可以將函式的括號省略,lambda表示式中的引數列表在大多數情況下可以不必宣告引數型別,也不必宣告引數名,直接用it關鍵字來代替。最後可以將**簡化為

val list=

listof(,

"banana"

,"orange"

,"pear"

,"grape"

)val max=list.

maxby

**map函式:**用於將集合中的元素都對映成另外的值,對映的規則在lam表示式中指定,最終生成乙個新的集合。例如,把水果名變成大寫

val list=

listof(,

"banana"

,"orange"

,"pear"

,"grape"

)val newlist=list.

map

filter函式:用於過濾集合中的資料。可以單獨使用,也可以配合map函式一起。例如,只保留五個字母以內的水果。

val list=

listof(,

"banana"

,"orange"

,"pear"

,"grape"

)val newlist=list.

filter

.map

**any和all函式:**any函式用於判斷集合中是否有乙個元素滿足條件,all函式用於判斷集合中是否所有元素都符合條件。

val anyresult=list.

anyval allresult=list.

all

C 中的函式 委託與lanbda表示式

以下幾個例子 兩個整數相加 2 delegate intfsum int x,int y 3 fsum sum2 x,y x y 4 int sum3 int x,int y x,y x y 1 是c系列中定義函式的經典寫法。2 3 引入委託型別 在使用中 1 中的函式和 3 中的委託,沒有多大差別...

程式設計,還是程式設計

喜歡程式設計,雖然水平一般,但還是執著地學習與程式設計有關的知識。中間因為工作關係與程式設計遠離了一段時間,現在又重拾起來,細想起來還是因為喜歡吧。喜歡程式軟體的思想和原理,喜歡程式 的魅力和成就感。程式設計軟體的思想是最值得學習的,一直認為思想決定行動,思想改變世界。每種軟體的流行和受人追捧,無不...

少兒程式設計程式設計

機械人比賽,聽上去讓人有一種高大上的科技感,沒錯,在大多數人眼裡,玩機械人那是科學家做的事情,不過隨著機械人教育的普及,越來越多的孩子也能夠駕馭這高大上的機械人。格物斯坦小坦克告訴你原因,這是歸結於孩子對於程式設計課程的學習,學會對機械人進行程式設計了,自然就能玩轉機械人啦。參加機械人比賽的意義遠遠...