柯里化(Currying)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。
定义一个函数:
def add(x:Int,y:Int)=x+y
函数柯里化:
def add(x:Int)(y:Int) = x + y
案例:
// 函数
def curriedAdd1(a:Int,b:Int) = a+b //> curriedAdd1: (a: Int, b: Int)Int
curriedAdd1(1,2) //> res0: Int = 3
//调用curriedAdd1函数
val addOne1 = curriedAdd1(1,1) //> addOne1 : Int = 2
// scala柯里化例子
def curriedAdd2(a:Int)(b:Int) = a+b //> curriedAdd2: (a: Int)(b: Int)Int
curriedAdd2(1)(2) //> res1: Int = 3
val addOne2 = curriedAdd2(1)_ //> addOne2 : Int => Int = worksheet_yp3$$$Lambda$8/2083562754@49e4cb85
addOne2(2) //> res2: Int = 3