函数柯里化:本质就是一个函数有多个参数列表
使用函数柯里化的好处一:简化嵌套函数的开发
//没有使用柯里化的时候,是两个函数嵌套使用
def test2() = {
def fun(): Unit = {
println("xxxxx")
}
fun _
}
//调用
test2()()
结果:xxxxx
//使用了函数柯里化(使用了两个参数列表)
//两个参数列表,就不必再使用嵌套函数了,而且和test2 实现的结果一样。
达到了简化嵌套函数的效果
def test3()() = {
println("xxxxx")
}
test3()()
结果:xxxxx
使用函数柯里化的好处二:可以支持更多的语法
//没有使用函数科里化
/*
函数test1 为例,三个函数都在同一个参数列表中,
就需要保证这三个参数一定得有关系,具有一定的耦合性
*/
def test1(i: Int, j: Int, f: (Int, Int) => Int): Int = {
f(i, j)
}
println(test1(1, 2, (i: Int, j: Int) => {
i + j
}))
//此处参数之间不必有关系,可以支持更多的语法
def test(i: Int)(j: Int)(f: (Int, Int) => Int): Int = {
f(i, j)
}
//调用函数
println(test(1)(2)(_ + _))