1.無參方法,加不加都可以執行。因為都可以執行,所以遇到不想它執行時,比如函數作為參數傳遞時,可以加上下划線 _
object FuncProgrammingDemo {
def main(args: Array[String]): Unit = {
myPrint //hello
myPrint() //hello
}
def myPrint(): Unit ={
println("hello")
}
}
2.隱式匹配時,加了會報錯,不加能成功執行
object FuncProgrammingDemo {
implicit val v = "scala"
def main(args: Array[String]): Unit = {
myPrint //scala
}
def myPrint(implicit str:String): Unit ={
println(str)
}
}
3.函數賦值給變量后,加了才執行,不加不執行。
object FuncProgrammingDemo {
def main(args: Array[String]): Unit = {
val f = myPrint _
//f沒有執行
f
f() //hello
}
def myPrint(): Unit ={
println("hello")
}
}
4.在控制抽象函數里。在test方法中,空參函數f的小括號去掉后,在test里調用不能加小括號,加了會報錯。
object ScalaDemo {
def main(args: Array[String]): Unit = {
//傳遞參數函數f時,直接傳遞代碼塊
test{
println("hello")
println("scala")
}
}
//去掉入參的小括號
def test(f: => Unit) = {
//調用時也去掉小括號
f
}
}
