每天学一点Scala之 Currying函数
admin
2023-03-16 11:41:09
0

1、Curring函数 定义?

    将原来接收两个参数的一个函数,转换为两个函数,第一个函数接收原先的第一个参数,然后返回接收原先第二个参数的第二个函数。

在函数调用的过程中,就变为了两个函数连续调用的形式

在marathon源码以及Spark的源码中,也有体现,所以对()()这种形式的Curring函数,要理解。

2、例子:

object CurryingTest {
   def main(args: Array[String]): Unit = {
      println("---->:\t" + sum(3,4))
      println("---->:\t" + sum2(5))
      println("---->:\t" + sum2(5)(1))
      // 柯里函数
      println("---->:\t" + sum3(4)(8))
   }
   def sum(a: Int, b: Int) = a + b
   def sum2(a: Int) = (b: Int) => a + b  // 由sum函数转换成sum3函数时的中间过程
   def sum3(a: Int)(b: Int) = a + b
}



其实,柯里函数到底用在什么场景下,并没有真正理解。

目前,仅仅是,只要看到

sum3(a: Int)(b: Int) = a + b

这种形式,可以直接理解成 或者等价于 

sum(a: Int, b: Int) = a + b

形式




相关内容

热门资讯

我来教教您“欢乐游开挂神器?”... 有 亲,根据资深记者爆料欢乐游是可以开挂的,确实有挂(咨询软件无需打开直...
今日重大消息“湘乐有挂吗?”(... 您好:湘乐这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏中打...
【第一财经】“斗棋麻将可以开挂... 网上科普关于“斗棋麻将有没有挂”话题很是火热,小编也是针对斗棋麻将作*弊开挂的方法以及开挂对应的知识...
重磅消息“小甘麻将有挂吗?”(... 您好:小甘麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
今日重大发现“免安装麻将机干扰... 家人们!今天小编来为大家解答免安装麻将机干扰器透视挂怎么安装这个问题咨询软件客服徽9784099的挂...
终于明白“鱼虾蟹透视到底是不是... 有 亲,根据资深记者爆料鱼虾蟹透视是可以开挂的,确实有挂(咨询软件无需打...
郑栅洁作报告:我委认真分析研判... 撰文 | ‍‍余晖十四届全国人大常委会第十九次会议12月22日至27日在北京举行。12月22日上午,...
重磅消息“大玩家福建麻将是不是... 家人们!今天小编来为大家解答大玩家福建麻将透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪...
【第一消息】“熊猫竞技究竟有挂... 网上科普关于“熊猫竞技有没有挂”话题很是火热,小编也是针对熊猫竞技作*弊开挂的方法以及开挂对应的知识...
今日重磅消息“天天麻将上高真的... 家人们!今天小编来为大家解答天天麻将上高透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里...