Scala:Function1、Function2
生活随笔
收集整理的這篇文章主要介紹了
Scala:Function1、Function2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Scala開篇(目錄)
?
- Function1
- andThen
- compose
- Function2
- curried
- tupled
?
Function1
帶一個參數的方法,聲明時,它需要兩個泛型參數,第一個是傳入的數據類型,第二個表示返回的數據類型,Function1是 trait ,它有一個apply方法,用來對輸入參數進行處理了,使用Function1,必須實現apply接口
val funs = new Function1[Int,Int] {def apply(x:Int) = {x + 1} }//使用 println(funs.apply(5)) // 6andThen
和另一個Function1實例組合成一個新的Function1實例,當前這個方法先執行,執行完的結果作為另一個方法的入參
val funs = new Function1[Int,Int] {def apply(x:Int) = {println("第一步:"+x)x + 1}}val succ = (x: Int) => {println("第二步:"+x)x + 3}println(succ.andThen(funs).apply(5))/**第二步:5第一步:8*/compose
與andThen相反,同樣是組合成新的Function1,但是作為參數的那個Function1先執行
//依然執行這個打印過程 println(succ.compose(funs).apply(5)) /** 第一步:5 第二步:6 */Function2
帶兩個參數的方法,它的聲明需要三個泛型參數,前兩個是入參類型,第三個是返回數據類型,同Function1一樣,也要實現apply方法
val funs = new Function2[Int,Int,Int] {def apply(x:Int,y:Int) = {x + y} } println(funs.apply(1,2)) // 3curried
為當前方法創建一個柯里化的版本
val funs = new Function2[Int,Int,Int] {def apply(x:Int,y:Int) = {x + y} } val curryfun = funs.curried println(curryfun(1)(2)) // 3tupled
為當前方法創建一個tupled(元組)版本
val funs = new Function2[Int,Int,Int] {def apply(x:Int,y:Int) = {x + y} } val tupledfun = funs.tupled println(tupledfun((1,2)))總結
以上是生活随笔為你收集整理的Scala:Function1、Function2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse+scala+java+m
- 下一篇: spark RDD创建方式:parall