介绍
柯里化(Currying):将接受多个参数的函数,变成接受一个参数的函数。
应用场景
函数柯里化 是 简化闭包 的一种方式,也就是说,只能应用在闭包上,但闭包可以不用柯里化
案例
闭包写法
def main(args: Array[String]): Unit = {
def sum(a:Int):(Int) => Int = {
def fun(b:Int):Int={
a+b
}
fun
}
println(sum(1)(2))
}
写法复杂
改成lambda表达式
def main(args: Array[String]): Unit = {
def sum(a:Int):(Int) => Int = a+_
println(sum(1)(2))
}
代码简化,但可读性不好
柯里化写法
def main(args: Array[String]): Unit = {
def sum(a:Int)(b:Int) = {
a+b
}
println(sum(1)(2))
}
简化写法,可读性也好