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函数
转载注明:https://www.cdcxhl.com/article42/igcghc.html
成都网站建设公司_创新互联,为您提供品牌网站制作、手机网站建设、App设计、云服务器、定制开发、用户体验
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联