至简原则细节

    1. return 可以省略,Scala 会使用函数体的最后一行代码作为返回值
    2. 如果函数体只有一行代码,可以省略花括号
    3. 返回值类型如果能够推断出来,那么可以省略(:和返回值类型一起省略)
    4. 如果有 return,则不能省略返回值类型,必须指定
    5. 如果函数明确声明 unit,那么即使函数体中使用 return 关键字也不起作用
    6. Scala 如果期望是无返回值类型,可以省略等号
    7. 如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加
    8. 如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略
    9. 如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略

    案例

    1. //函数标准写法
    2. def f(s: String): String = {
    3. return s + " abc"
    4. }
    5. println(f("hello"))
    6. //1. return可以省略, scala会使用函数体最后一行代码作为返回值
    7. def f1(s: String): String = {
    8. s + " f1"
    9. }
    10. println(f1("hello"))
    11. //2. 如果只有一行, 可以省略括号
    12. def f2(s: String): String = s + " f2"
    13. println(f2("hello"))
    14. //3. 返回值类型如果能推断出来, 那么可以省略 (: 和返回值一起省略)
    15. def f3(s: String) = s + " f3"
    16. println(f3("hello"))
    17. //4. 如果有return, 则不能省略返回值类型, 必须指定
    18. def f4(): String = {
    19. return " f4"
    20. }
    21. println(f4())
    22. //5.如果函数明确声明 unit,那么即使函数体中使用 return 关键字也不起作用
    23. def f5(): Unit = {
    24. return " f5"
    25. }
    26. println(f5())
    27. //6. Scala 如果期望是无返回值类型,可以省略等号
    28. // 将无返回值的函数称之为过程
    29. def f6() {
    30. " f6"
    31. }
    32. println(f6())
    33. println("==============")
    34. // 7. 如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加
    35. def f7() = " f7"
    36. println(f7())
    37. println(f7)
    38. println("==============")
    39. //8. 如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略
    40. def f8 = " f8"
    41. println(f8)
    42. println("==============")
    43. //9. 如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略
    44. def f9 = (x: String) => {
    45. println("f9")
    46. }
    47. //把函数当参数传进来
    48. def f10(f: String => Unit) = {
    49. f("")
    50. }
    51. f10(f9)
    52. println("==============")
    53. println(f10((x:String)=>{println("wusong")}))