声明函数 省略原则
下面3个是一脉相承:
return可以省略,使用函数体的 最后一行代码 作为返回值如果函数体 只有一行代码,可以省略 花括号,即:
{}返回值类型如果能够推断出来,那么可以省略
:返回类型(要保留=),同时return也不能写
正常完整写法
def main(args: Array[String]): Unit = {
def f(s: String): String = {
return "测试"+s
}
println(f("Hello"))
}
原则 1
def f1(s: String): String = {
"测试"+s
}
println(f1("Hello"))
原则 2
def f2(s: String): String = "测试"+s
原则 3
def f3(s: String) = "测试"+s
println(f3("Hello3"))
下面写法报错,不能有 return :
def f3(s: String) = return "测试"+s
注意:return
如果有 return,则 必须 有返回值类型
正常写法
def f4(): String = {
return "测试"
}
println(f4())
下面写法报错
不能写成下面方式,有 return 关键字,必须指定返回类型
def f4() = {
return "测试"
}
没有返回值
如果函数 无返回值,可以省略 :Unit =(省略 =),但 不能省略花括号
def f4(s:String) {
println("测试打印:"+s)
}
println(f4("scala从入门到精通"))
返回值是 ()
调用函数 省略原则
如果函数 无参,那么调用时,小括号可以省略
如果定义函数时 没有小括号,调用函数时 必须不能有小括号
原则 1
def f6(): String = {
return "测试f6"
}
println(f6()) //可以加小括号
println(f6) //可以不加小括号
原则 2
scala中的应用:数组 Array 定义 length 方法就没有 ()
def f7: String = {
return "测试f7"
}
// println(f7()) //报错
println(f7)