Scala中函数名 _表示的将函数整体赋值给一个变量,即用变量表示一个函数。 如果变量明确类型,那么可以省略函数名后面的_
val f3: ()=> Int = foo
println(f3())
需要注意的是,通过变量调用该函数时,需要在变量名后面加()。
object _03FunctionDeliverWithValue {
def foo() = {
println("foo...")
1
}
def main(args: Array[String]): Unit = {
// 将函数整体赋值给变量。函数名称后面跟_表示将函数整体赋值给变量(值传递)
val f2 = foo _
println(f2) // f2是变量f2指向的函数地址
println(f2()) // f2()调用函数
// 如果变量明确类型,那么可以省略函数名后面的_
val f3: ()=> Int = foo
println(f3())
}
}