目标:
Scala中的方法与函数的定义及其语法规则
路径:
- 定义方法的语法
- 方法定义的规则
- 定义函数的语法
- 函数定义的规则
- 方法与函数的区别
实施:
定义方法的语法
def funcName(args1:Type1,args2:Type2……):ResultType = {
//方法体
}
举例:
scala> def m1(a:Int,b:Int):Int = {
| a + b
| }
m1: (a: Int, b: Int)Int
方法定义的规则
- 方法定义的关键字为def
- 如果方法体只有一行,{}可以省略
- 没有return关键字,使用方法体的最后一行【值或者表达式】作为返回值
- 大多数情况下返回值类型也可以自动推断,可以不写,递归方法除外
函数的定义的语法
(参数) => {
//函数体
}
举例:
scala> (x:Int) => x + 5
res33: Int => Int = <function1>
函数的定义的规则
- 函数通过=>进行标记:用于区分方法【def】和函数
- 如果函数体只有一行,可以省略{}
- 没有return关键字,使用函数体的最后一行作为返回值
- Scala中函数的本质就是对象,每个函数就是一个FunctionN类的实例,N表示参数个数
- 调用函数的本质是调用了这个对象的方法实现的
- 所以要定义、调用函数,必须指定参数列表,不然只是定义或者调用了这个对象,而不是这个对象的方法
方法与函数的区别
- 类中定义的称为方法
- 与类没有关系的函数定义,称为函数
- 方法:由方法名、参数、方法体构成,一般指的是类中定义的函数即为方法
- 函数:由函数名、参数、函数体构成,一般指的是可以独立构建的称为函数
- 方法如果定义时没有参数,调用时可以不加括号
- 函数不论是否定义了参数,必须加括号