至简原则:能省则省
至简原则细节
(1)return可以省略,Scala会使用函数体的最后一行代码作为返回值
(2)如果函数体只有一行代码,可以省略花括号
(3)返回值类型如果能够推断出来,那么可以省略(:和返回值类型一起省略)
(4)如果有return,则不能省略返回值类型,必须指定
(5)如果函数明确声明unit,那么即使函数体中使用return关键字也不起作用
(6)Scala如果期望是无返回值类型,可以省略等号
(7)如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加
(8)如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略
(9)如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略
实操代码demo:
package com.lqs.demo.functions_2
object FuncSimply {
def main(args: Array[String]): Unit = {
f7()
f7
f8
// f8()//报错:Unit does not take parameters
f9(2,3)
function(1,2)
}
//至简规则1:return可以省略,Scala会使用函数体最后一行代码作为返回值
def f1(x: Int, y: Int): Int = {
println("f1调用")
x + y
}
//至简规则2:如果函数体只有一行代码,可以省略花括号
//不写花括号,默认有效范围只有一行
def f2(x: Int, y: Int): Int = x + y
//至简规则3:返回值类型如果能够推断出来,那么可以省略(:和返回值类型一起省略)
def f3(x: Int, y: Int) = x + y
//至简规则4:如果有return,则不能省略返回值类型,必须指定
def f4(x: Int, y: Int): Int = {
return x + y
}
//至简规则5:如果函数明确声明unit,那么即使函数体中使用return关键字也不起作用
def f5(x: Int, y: Int): Unit = return x + y
//至简规则6:Scala如果期望是无返回值类型,可以省略等号
def f6(x: Int, y: Int) {
println(x + y)
}
//至简规则7:如果函数无参,但是声明了参数列表,那么调用时,小括号:可加可不加
def f7():Unit={
println("Hello Scala")
}
//至简规则8:如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略
def f8{
println("Hello Scala")
}
//至简规则9:如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略
def f9(x:Int,y:Int)=x+y
val function:(Int,Int)=>Int=(x:Int,y:Int)=>x+y
//定义一个正常的的、标准的函数
def func0(x: Int, y: Int): Int = {
println("f0调用")
return x + y
}
}