内容:
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 但必须指明类型。