1.函数的定义与调用
-
scala定义函数时,需定义函数的函数名、参数、函数体
-
scala中必须给出所有参数的类型,但函数的返回值类型不一定给出,只要函数体中不包含递归语句,scala就可根据右侧的表达式推断出返回值类型。
-
单行函数
def sayHello (name:String)=print("hello," + name)
-
函数体中包含多行代码,则可以使用代码块的方式包裹多行代码,代码块中最后一行的返回值就是整个函数的返回值,这点与java不同,java使用return来返回值。如下图累加函数
def sum(n:Int)={ var sum=0 for(i <- 1 to n) sum += i sum }
2.递归函数与返回类型
-
如果在函数体内递归调用函数自身,则必须手动添加函数的返回类型
求第n个斐波那契数(1,1,2,3,5,8,……)
def fab(n:Int):Int={ if(n==1 || n==2) 1 else fab(n-1) + fab(n-2) }