柯里化
解释:柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。
简单的例子方法一
def currying(x:Int)(y:Int) = x*y
调用时 currying(3)(4)
Int = 12
转换 val curry = currying(3) _
调用时 currying(3)
Int = 9
方法二
def currying(x:Int)(implicit y:Int = 5) = x*y
调用时 currying(3)
Int = 15
不想用隐式的值的时候直接调用 currying(3)(4)
Int = 12
方法三
implicit val x = 100
调用的时候 m2(4)
Int = 400
注意只能给一个隐式的值
方法四
def m1(x: Int) = (y: Int) => x * y
转化 val func = m1(2)
调用func(3)
Int = 6