一、函数是第一等公民
Scala中,函数上升和变量同等的位置,或者说函数也是一种变量。
Scala中的函数可以作为实参传递给另一个函数;
函数可以作为返回值;
函数可以赋值给变量(这个变量需符合函数的类型的变量);
函数可以存储在数据结构之中。
函数如同普通变量一样,也具有类型。
二、函数类型
形式:A=>B
A为输入类型,B为输出类型
如Int => String,把整形数变成String类型。
三、高阶函数
用函数作为形参或者作为返回值的函数称为高阶函数。
四、匿名函数
用过Python的lambda函数的人能很快接受匿名函数的概念,Scala中的匿名函数和其很相似的。
匿名函数也称为函数常量,也称函数文字量(类比String)。
定义格式:
(形参列表) => {函数体}
如:
(x:Int, y:Int) => x+y
val fun = (x:Int, y:Int) => x+y
var funr = (x:Int, y:Int) => x+y
上面三句都是可以使用的。
fun不能重新赋值,funr可以赋值其他的类型为(Int, Int)=>Int的函数。