Scala方法形参中传入函数作为参数

  • Post author:
  • Post category:其他


在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 版权协议,转载请附上原文出处链接和本声明。