日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scala:Function1、Function2

發布時間:2024/1/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)) // 6

andThen

和另一個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)) // 3

curried

為當前方法創建一個柯里化的版本

val funs = new Function2[Int,Int,Int] {def apply(x:Int,y:Int) = {x + y} } val curryfun = funs.curried println(curryfun(1)(2)) // 3

tupled

為當前方法創建一個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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。