部分应用函数(Partial Applied Function)是指缺少部分参数的函数.
package com.dt.scala.moguyun
/**
* 部分应用函数
* Created by Administrator on 2016/8/10.
*/
object PartialAppliedFunctionLearn {
def main(args: Array[String]) {
//第一种常见样式
val result = sum _ //表明是一个部分应用函数,参数一个都没定
val r = result(2)(3)(4)
println(r)
val r1 = result(1)//返回一个function1
println(r1)
val r2 = result(2)(_: Int)(4)
println(r2)//返回一个function1
val r3 = r2(5)//完整
println(r3)
//第二种常见样式
val s = sum(4)(8)(_: Int)//注意这里得用_通配符,用i,j等不可以
val s1 = s(7)
println(s1)
val s2 = sum(5)(_: Int)(_: Int)//返回一个function2
println(s2)
val s3 = s2(5, 3) //注意这里传入一个(Int, Int),而不是这样(5)(3)
println(s3)
}
/**
* 定义一个函数,要求传入三个Int类型参数
*/
def sum(i: Int)(j: Int)(k: Int): Int ={
i + j + k
}
}
结果如下:
9
<function1>
<function1>
11
19
<function2>
13