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