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(_))
}
}