scala 函数柯里化的理解

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


使用函数柯里化的好处一:简化嵌套函数的开发

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

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

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值