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