函数至简原则:能省则省
(1)return可以省略,Scala会使用函数体的最后一行代码作为返回值
(2)返回值类型如果能够推断出来,那么可以省略
(3)如果函数体只有一行代码,可以省略花括号
(4)如果函数无参,则可以省略小括号。若定义函数时省略小括号,则调用该函数时,也需省略小括号;若定时函数时未省略,则调用时,可省可不省。
(5)如果函数明确声明Unit,那么即使函数体中使用return关键字也不起作用
(6)Scala如果想要自动推断无返回值,可以省略等号
(7)如果不关心名称,只关系逻辑处理,那么函数名(def)可以省略
(8)如果函数明确使用return关键字,那么函数返回就不能使用自行推断了,需要声明返回值类型
函数标准写法
def f1(s: String): String = {
return s + " result1"
}
println(f1("Hello"))
输出
Hello result1
return可以省略,scala会使用函数体的最后一行代码作为返回值
def f2(s: String): String = {
s + " result1"
}
println(f2("Hello"))
输出
Hello result1
如果函数名使用return关键字,那么函数就不能使用自行推断了,需要声明返回值类型
def f22(s: String): String = {
return "result1"
}
返回值类型如果能够推断出来,那么可以省略
def f3(s: String) = {
s + " result"
}
如果函数体只有一行代码,可以省略花括号
def f1(s: String) = s + " result1"
def f2(s: String) = "result1"
def f4() = " result1"
如果函数明确声明unit,那么即使函数体中使用return关键字也不起作用
def f6(): Unit = {
return "result"
}
输出
()
如果不关心名称,只关系逻辑处理,那么函数名(def)可以省略
val f = (x: String) => {
x + " result"
}
println(f("hello"))
输出
hello result
如果函数明确使用return关键字,那么函数返回就不能使用自行推断了,需要声明返回值类型
def f8(): String = {
return "result"
}
println(f8())
输出
result