每天学一点Scala之 Currying函数

简介:

1、Curring函数 定义?

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

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

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

2、例子:

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



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

目前,仅仅是,只要看到

1
sum 3 (a :  Int)(b :  Int)  =  a + b

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

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

形式















本文转自故新51CTO博客,原文链接:http://blog.51cto.com/xingej/1963456 ,如需转载请自行联系原作者




相关文章
|
3月前
|
分布式计算 Scala Spark
Scala【集合常用方法和函数操作(下)】
Scala【集合常用方法和函数操作(下)】
|
3月前
|
分布式计算 Scala Spark
Scala 【集合常用方法和函数操作-上】
Scala 【集合常用方法和函数操作-上】
|
3月前
|
编译器 Scala
认识scala中的函数
认识scala中的函数
28 5
|
3月前
|
Scala
Scala函数和方法
Scala函数和方法
24 1
|
11月前
|
机器学习/深度学习 分布式计算 Java
Scala方法和函数
Scala方法和函数
87 0
|
大数据 Serverless Scala
大数据开发基础的编程语言的Scala的函数和闭包
Scala是一种支持函数式编程的编程语言,它具有强大的函数和闭包功能。本文将介绍Scala中函数和闭包的概念和用法,帮助开发者更好地理解和应用这门语言。
72 0
|
Java Scala
Scala快速入门-2-控制结构与函数
表达式有值,语句执行动作。 Scala中,几乎所有构造出来的语法结构都有值,不像Java中把表达式和语句(if语句)分为两类。 在这里if表示式有值。 代码块也有值,最后一个表达式就是值。 语句中,分号不是必需的。 函数式中不使用return。
|
Java 编译器 Shell
scala中的变量、方法、函数
Scala是一门多范式的编程语言,一种类似java的编程语言,是可扩展语言,并集成面向对象编程和函数式编程的各种特性的混合功能编程语言。 Scala被编译后在Java虚拟机上运行。
194 0
scala中的变量、方法、函数
|
SQL JSON 前端开发
Scala的面向对象与函数编程
Scala的面向对象与函数编程
Scala的面向对象与函数编程
|
Scala
Scala第2章 控制结构和函数(编程题)
Scala第2章 控制结构和函数(编程题)
147 0
Scala第2章 控制结构和函数(编程题)