函数至简原则:能省则省

    (1)return可以省略,Scala会使用函数体的最后一行代码作为返回值

    (2)返回值类型如果能够推断出来,那么可以省略

    (3)如果函数体只有一行代码,可以省略花括号

    (4)如果函数无参,则可以省略小括号。若定义函数时省略小括号,则调用该函数时,也需省略小括号;若定时函数时未省略,则调用时,可省可不省。

    (5)如果函数明确声明Unit,那么即使函数体中使用return关键字也不起作用

    (6)Scala如果想要自动推断无返回值,可以省略等号

    (7)如果不关心名称,只关系逻辑处理,那么函数名(def)可以省略

    (8)如果函数明确使用return关键字,那么函数返回就不能使用自行推断了,需要声明返回值类型

    函数标准写法

    1. def f1(s: String): String = {
    2. return s + " result1"
    3. }
    4. 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