方法
定义格式:
def 方法名(参数名1: 参数类型1, 参数名2: 参数类型2) : 返回类型 = {方法体}
注:1.方法的返回值类型和return可以不写,编译器可以自动推断出来
2.对于递归方法,必须指定返回类型
3.如果方法没有返回值,返回Unit类型(类似于void,也可以不写)
4.返回值类型有多种情况则返回Any
5.带有默认值参数的方法,调用时,可以给定新值,也可以使用默认值
6.可以通过参数名来指定传递给哪一个参数,这样传递参数时就可以不按照顺序传递
7.方法没有参数,调用时可以省略(),如果定义时()省略,调用时则必须省略
8.可变参使用 变量名:类型* (类似Java的…)
函数
完整语法
val函数名称 :(参数类型)=>函数返回值类型 = (参数名称:参数类型)=>函数体
简写语法
val函数名称 = (参数名称:参数类型) => 函数体
方法和函数的区别
方法:和java的方法类似,是封装了完成某些功能的代码块所归属某一个类或对象
函数:在Scala中,函数是头等公民,函数是一个对象,那么既然是对象的话,函数就可以赋值给变量 或者 当作参数被传递,还可以 使用函数打点调用方法
注:严格的来说,函数与方法是不同的东西。定义方式上也有很多的区别
但是在Scala中,函数本身是对象,方法可以通过下划线_转换为函数。
所以结论是:在Scala中
方法可以转换为函数,函数本质上就是对象
函数式编程的核心思想、灵魂所在:行为参数化!