网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

每天学一点Scala之Currying函数

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

形式


当前文章:每天学一点Scala之Currying函数
文章网址:http://bjjierui.cn/article/igcghc.html

其他资讯