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 中的委託,沒有多大差別...
程式設計,還是程式設計
喜歡程式設計,雖然水平一般,但還是執著地學習與程式設計有關的知識。中間因為工作關係與程式設計遠離了一段時間,現在又重拾起來,細想起來還是因為喜歡吧。喜歡程式軟體的思想和原理,喜歡程式 的魅力和成就感。程式設計軟體的思想是最值得學習的,一直認為思想決定行動,思想改變世界。每種軟體的流行和受人追捧,無不...
少兒程式設計程式設計
機械人比賽,聽上去讓人有一種高大上的科技感,沒錯,在大多數人眼裡,玩機械人那是科學家做的事情,不過隨著機械人教育的普及,越來越多的孩子也能夠駕馭這高大上的機械人。格物斯坦小坦克告訴你原因,這是歸結於孩子對於程式設計課程的學習,學會對機械人進行程式設計了,自然就能玩轉機械人啦。參加機械人比賽的意義遠遠...