https://cloud.tencent.com/developer/article/1793531
方法使用陷阱:
- 1.return可以省略,Scala会使用函数体的最后一行代码作为返回值
- 2.如果函数体只有一行代码,可以省略花括号
- 3.返回值类型如果能够推断出来,那么可以省略(:和返回值类型一起省略)
- 4.如果有return,则不能省略返回值类型,必须指定
- 5.如果函数明确声明unit,那么即使函数体中使用return关键字也不起作用
- 6.Scala如果期望是无返回值类型,可以省略等号 这种形式称为过程
- 7.如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加
- 8.如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略
- 9.如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略
code
package 方法和函数.方法 object Method_1 { def main(args: Array[String]): Unit = { //(9)如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略 // 1.扩展f9的功能 2.具体扩展的功能是通过fun函数传递,很灵活 def f9(fun:(String)=>Unit): Unit ={ fun("fun 被执行.......") println("f9() 被执行.....") } def f10(str : String ):Unit= println("str f10 被调用......") f9(f10) def fun(value : Int ):Int = { println("value:="+value) value } def fun1(x:Int ,y : Int ):Int ={ println("x+y="+(x+y)) x+y } println(fun(fun1(1,2))) f9((s:String)=>{println(s)}) f9((s)=>{println(s)}) f9((s)=>{println(s)}) f9(s =>{println(s)}) f9(s =>println(s)) f9(println(_)) def f11(fun:(Int,Int)=>Int):Double={ fun(3,2) } println(f11(_ + _)) println(f11(_ - _)) println(f11(_ * _)) println(f11(_ / _)) println(f11(_ % _)) println(f11(_)) } }