第6节 Scala中的高阶函数:1、2、3、
Scala高级特性 1. 课程目标 1.1. 目标一:深入理解高阶函数 1.2. 目标二:深入理解隐式转换 2. 高阶函数 2.1. 概念 Scala混合了面向对象和函数式的特性,我们通常将 可以作为参数传递到方法中的表达式叫做函数 。在函数式编程语言中,函数是“头等公民”,高阶函数包含:作为值的函数、匿名函数、闭包、柯里化等等。 2.2. 作为值的函数 可以像任何其他数据类型一样被传递和操作的函数,每当你想要给算法传入具体动作时这个特性就会变得非常有用。 定义函数时格式:val 变量名 = (输入参数类型和个数) => 函数实现和返回值类型 “=”表示将函数赋给一个变量 “=>”左面表示输入参数名称、类型和个数,右边表示函数的实现和返回值类型 2.3. 匿名函数 在Scala中,你不需要给每一个函数命名,没有将函数赋给变量的函数叫做匿名函数。 由于Scala可以自动推断出参数的类型,所有可以写的跟精简一些 还记得神奇的下划线吗?这才是终极方式 2.4. 柯里化 2.4.1. 什么是柯里化 柯里化(Currying) 指的是把原来接受多个参数的函数变换成接受一个参数的函数过程,并且返回接受余下的参数且返回结果为一个新函数的技术。 2.4.2. 例子 (1) 一个普通的非柯里化的函数定义,实现一个加法函数: scala> def plainOldSum(x:Int,y:Int)=x