内容:
1、Scala偏函數實戰
2、Scala偏函數解析
val data = List(1, 2, 3, 4, 5, 6)
data.foreach(println _)
data.foreach(x => println(x))
<span style="font-family: 宋體; background-color: rgb(255, 255, 255);">Println _</span><span style="font-family: 宋體; background-color: rgb(255, 255, 255);">這種下劃線代表若幹個參數的函數稱為偏函數,偏函數實際是值類型一種表達式,這種表達式在使用時候隻提供部分參數,是以可以将其指派給一個常量。</span>
def sum(a: Int, b: Int, c: Int) = a + b + c
println(sum(1, 2, 3))
val fp_a = sum _
println(fp_a(1, 2, 3))
println(fp_a.apply(1, 2, 3))
val fp_b = sum(1, _: Int, 3)
println(fp_b(2))
println(fp_b(10))
//以上代碼中偏函數sum _指派給常量fp_a,且提供部分參數,但在實際使用的時候,要對函數定義的參數進行全部指派fp_a(1,2,3);
Fp_a.apply(1,2,3)實際是調用的function方法的apply函數,參數類型均為int,編譯器會自動識别sum_缺少的3個參數,apply擷取到這3個參數,并将其傳給sum;
調用fp_b(10)時候,雖提供部分參數,_:int 但必須指明類型。