理解Scala中的函数式编程
来源:互联网 发布:c语言char范围 编辑:程序博客网 时间:2024/06/05 00:57
核心内容:
1、Scala中函数的地位:一等公民
2、Scala中的匿名函数(函数字面量)
3、Scala中的高阶函数
4、Scala中的闭包
5、Scala中的部分应用函数
6、Scala中的柯里化函数
1、Scala中函数的地位:一等公民
①在Scala当中,函数是一等公民,像变量一样,既可以作为函数的参数使用,也可以将函数赋值给一个变量.
②在Scala当中,函数是一等公民,函数的创建不用依赖于类、特质或者对象,而在Java当中,函数的创建则要依赖于类、抽象类或者接口.
示例程序1:
运行结果:
- 1
- 2
- 3
示例程序2:
2、Scala中的匿名函数(函数字面量)
①Scala中的匿名函数也叫做函数字面量,既可以作为函数的参数使用,也可以将其赋值给一个变量.
②在匿名函数的定义当中,=>可理解为一个转换器,它使用右侧的算法,将左侧的输入数据转换为新的输出数据.
实例0
val double = (i: Int) => i * 2
//或者:val double :(Int)=> Int = _ * 2
List(1, 2, 3, 4, 5).map(double).foreach{j => print(j + " ")}
实例程序1:
运行结果:
- 1
- 2
- 3
①函数的类型,其实就是输入输出值的类型.
②Scala中的高阶函数包括两种: 将一个函数作为参数的函数称为高阶函数 ;将一个返回值是函数的函数称为高阶函数.
实例程序1:
运行结果:
- 1
- 2
- 3
- 4
①Scala中的闭包指的是当函数的变量超出它的有效作用域的时候,还能对函数内部的变量进行访问.
②Scala中的闭包捕获到的是变量的本身而不仅仅是变量的数值,当自由变量发生变化时,Scala中的闭包能够捕获到这个变化.
③如果自由变量在闭包内部发生变化,也会反映到函数外面定义的自由变量的数值.
示例程序1:
运行结果:
- 1
- 2
- 3
示例程序2:
运行结果:
- 1
- 2
示例程序3:
示例程序4:
运行结果:
- 1
- 2
- 3
①部分应用函数只是在“已有函数”的基础上,提供部分默认参数,未提供默认参数的地方使用下划线替代,从而创建出一个“函数值”,在使用这个函数值(部分应用函数)的时候,只需提供下划线部分对应的参数即可.
②部分应用函数本质上是一种值类型的表达式,在使用的时候不需要提供所有的参数,只需要提供部分参数.
实例程序1:
运行结果:
- 1
- 2
- 3
- 4
①scala中的柯里化指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程.新的函数返回一个以原有第二个参数作为参数的函数.
实例程序1:
运行结果:
- 深入理解Scala中的函数式编程
- 理解Scala中的函数式编程
- 深入理解Scala中的函数式编程
- Scala 中的函数式编程基础
- Scala 函数式编程
- Scala函数式编程
- Scala函数式编程
- Scala 函数式编程
- scala-函数式编程
- Scala函数式编程
- Ruby,Scala和JavaScript中的函数式编程(一)
- 【Scala】Scala函数式编程初探
- scala学习五:scala函数式编程
- Scala函数式编程原理
- 函数式编程与Scala
- scala 函数式编程入门
- Scala函数式编程进阶
- Scala学习--函数式编程
- 3-Django 中的MVC
- Linux启动流程中文件配置
- 将C/C++写的代码转换成Pas
- 关于iconv字符编码的转换
- 第十一周项目二(2)
- 理解Scala中的函数式编程
- 优化算法——梯度下降法
- 使用ocupload和POI一键上传Excel并解析导入数据库
- 在Word2013中实现两个Word窗口的并排查看
- leetcode 43. Multiply Strings
- XMPP协议初步了解
- java递归删除文件夹以及文件
- 警告:编码 UTF-8 的不可映射字符 的解决方案
- 怎样把char型数组转存为int型数组