Scala中的函数同样是一段业务逻辑。Scala是面向函数的语言,函数在Scala中是可以独立存在的。并且,Scala中的方法可以看作是一种特殊的函数。
Scala中函数的定义有两种形式,一种是简单的定义形式,一种是复杂的定义形式。具体定义形式如下所示:
简单的定义形式:
注意,这里的是函数的一个显著特征,看到“=>”我们就知道这里定义了一个函数。
示例:
复杂的定义形式:
示例:
好了,到现在为止,我们看到的只是Scala函数的简单使用。实际上,Scala中的高阶函数才是真正的杀手锏。这里的高阶函数使用非常灵活,可以达到最大限度的代码重用。
那么,什么是高阶函数呢? 在说高阶函数之前,我们先看看函数是不是有类型的?
函数是可以有参数的,参数可以是任意的Scala类型。这里函数我们同样可以理解为一种类型。函数的类型也称为函数的签名,签名包括了函数参数的类型和返回值类型。如:(Int,Int)=>Int,便是一个函数的签名,也就是函数的类型。
那这样就很容易理解了,既然函数也是有类型的,我们可以把它理解成一种特殊的变量。
具体来说,高阶函数包括了三种形式:
1. 函数的参数是函数
2. 函数的返回值是函数
3. 函数的参数和返回值都是函数