scala 函数柯里化的理解

  • Post author:
  • Post category:其他


函数柯里化:本质就是一个函数有多个参数列表



使用函数柯里化的好处一

:简化嵌套函数的开发

//没有使用柯里化的时候,是两个函数嵌套使用

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)(_ + _))



版权声明:本文为qq_42564058原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。