在scala中,函数用关键字def定义
函数的标准版
def fun1(x:Int = 10):Int = {//定义函数时直接给定默认值
return x+1;
}
def fun2(x:Int) = x+1;//定义函数的快速方式
//def fun2 = fun1;报错,提示少了个参数,需要加下划线 ,下划线在scala中是通配符
def fun2 = fun1 _;
匿名函数
(x:Int) => x+1;
var add = (x:Int) => x+1;//匿名函数赋值给add
var add1 = add;//再赋值给add1,这个时候不需要加下划线。
{ i: Int =>
println("hello world")
i * 2
}
嵌套函数
在函数中定义函数,其中fun2只能在fun1中使用。
def fun1(a:Int) = {
def fun2(b:Int) = {
println(b);
}
fun2(a);
}