在Scala中可以将函数作为参数传递到另一个方法中,代码如下:
object FunctionTest {
def main(args: Array[String]): Unit = {
test(plus)
}
def test(fun: => Unit): Unit = {
println("this is test run")
fun
}
def plus() = {
println("this is plus run")
}
}
运行结果:
this is test run
this is plus run
那么 万一这个传入的函数自己本身也有形参怎么办呢?
object FunctionTest {
def main(args: Array[String]): Unit = {
test(plus, 23)
}
def test(fun: Int => Unit, num: Int): Unit = {
println("this is test run")
fun(num)
}
def plus(num: Int) = {
println("this is plus run" + num)
}
}
运行结果:
this is test run
this is plus run23
还可以写的更简洁,类似java的匿名内部类,我愿称之为匿名函数:
版权声明:本文为zjlzxc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。