至简原则细节
- return 可以省略,Scala 会使用函数体的最后一行代码作为返回值
- 如果函数体只有一行代码,可以省略花括号
- 返回值类型如果能够推断出来,那么可以省略(:和返回值类型一起省略)
- 如果有 return,则不能省略返回值类型,必须指定
- 如果函数明确声明 unit,那么即使函数体中使用 return 关键字也不起作用
- Scala 如果期望是无返回值类型,可以省略等号
- 如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加
- 如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略
- 如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略
案例
//函数标准写法def f(s: String): String = {return s + " abc"}println(f("hello"))//1. return可以省略, scala会使用函数体最后一行代码作为返回值def f1(s: String): String = {s + " f1"}println(f1("hello"))//2. 如果只有一行, 可以省略括号def f2(s: String): String = s + " f2"println(f2("hello"))//3. 返回值类型如果能推断出来, 那么可以省略 (: 和返回值一起省略)def f3(s: String) = s + " f3"println(f3("hello"))//4. 如果有return, 则不能省略返回值类型, 必须指定def f4(): String = {return " f4"}println(f4())//5.如果函数明确声明 unit,那么即使函数体中使用 return 关键字也不起作用def f5(): Unit = {return " f5"}println(f5())//6. Scala 如果期望是无返回值类型,可以省略等号// 将无返回值的函数称之为过程def f6() {" f6"}println(f6())println("==============")// 7. 如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加def f7() = " f7"println(f7())println(f7)println("==============")//8. 如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略def f8 = " f8"println(f8)println("==============")//9. 如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略def f9 = (x: String) => {println("f9")}//把函数当参数传进来def f10(f: String => Unit) = {f("")}f10(f9)println("==============")println(f10((x:String)=>{println("wusong")}))
