1.1 函数定义
//有参 无返回值
def test(a:String,b:Int):Unit = {
println("这是一个基本的函数语法 ")
}
1.2 函数参数
可变参数一般放置在最后
def test( s : String * ) : Unit = {
println(s)
}
参数默认值
def test2( name: String , age :Int = 30 ): Unit = {
println( s " $name, $age ")
}
//覆盖
test2("zs",20)
//age是默认值
test2("ls")
//带名参数
test2(name="w5")
1.3 函数至简原则
1. return 如果是最后一行需要return可以省略
def test() : String = {
"test"
}
2. 如果有return,则不能省略返回值类型,必须指定
def test() : String = {
return "test" //如果此时有return
}
3. 只有一行代码,可以省略花括号
def test = "123"
4. 返回值类型如果能推断出来,那么可以省略 : 类型
5. 如果返回值类型是Unit,那么可以省略等号
def test(){
println("test")
}
6. 如果函数无参数,但是声明了参数列表,那么调用时,小括号,可加可不加
def test() = {
"123"
}
test
7. 如果函数没有参数列表,那么小括号可以省略,
调用时小括号必须省略
def test = {
"123"
}
//test() 报错
test
- 如果不关心名称,只关心逻辑处理,那么函数名可以省略
跟Java的匿名内部类类似。
Java中的使用
Function<Integer, String> function = item -> item + "";