1. 程式人生 > >Kotlin高階函式講解

Kotlin高階函式講解

Kotlin的高階函式有很多;常用的有:forEach、map、flatMap、fold、reduce、filter、takeWhile、let、apply、use等;

下面就用程式碼給大家展示一下:

fun main(args: Array<String>) {
    val list= listOf(
            1..20,
            2..5,
            100..322

    )
    val faltlist=list.flatMap {it}

//    輸出結果
    faltlist.forEach (::println
) // 輸出求list裡面的總和 println(faltlist.reduce { acc, i -> acc + i }) // 呼叫下面求階乘的方法0到6的階乘 (0..6).map(::factorial).forEach (::println) // 得到階乘以後我們還想求和 println("階乘的結果為:"+(0..6).map(::factorial).reduce { acc, i -> acc + i }) // 要是我們還想加個初始值的話就要用一個新的高階函式識別符號了 println("添加了一個初始值後在想加集合:"+(0..6
).map(::factorial).fold(5){acc, i -> acc + i}) // 用fola這個識別符號還可以拼接字串 println("拼接的結果為:"+(0..6).map(::factorial).fold(StringBuilder()){ acc, i -> acc.append(i).append(",") }) // 還有一個是foldRight就是倒序的顯示出來 println("倒序的結果為:"+(0..6).map(::factorial).foldRight(StringBuilder()){ i,acc ->
acc.append(i).append(",") }) // 遇到我們的判斷條件就讓它停下來的函式 println( "遇到第一個符合條件的把前面的留下後面的不要:"+(0..6).map(::factorial).takeWhile {it % 2==1}) //還有一個高階函式是拿到集合的基數 println("求的基數為:"+(0..6).map(::factorial).filter{it % 2 ==1}) // 連線字串還可以更簡單 println("拼接字串為:"+(0..8).joinToString(",")) } //定義求階乘的函式 fun factorial(n:Int):Int{ if (n==0)return 1 return (1..n).reduce { acc, i -> acc * i } }
這就是高階函式的程式碼展示,後續更新Kotlin學習。

這裡寫圖片描述