高阶函数

可以接收函数作为参数的函数就是高阶函数。

Demo

object HighOrderFuncDemo01 {

  def main(args: Array[String]): Unit = {
    val res = test(sum, 2.0)
    println(res)

    val f1 = myPrint _
    f1()
  }

  def myPrint(): Unit = {
    println("Hello World!")
  }

  def test(f: Double => Double, n1: Double) = {
    f(n1)
  }

  def sum(double: Double) = {
    println("sum 被调用")
    double + double
  }
}
  1. test 就是一个高阶函数

  2. f: Double => Double 表示一个接收Double类型,并返回Double类型的函数

  3. f(n1) 表示执行传入的函数。在这个示例中就是 sum

  4. val f1 = myPrint _ 可以将函数直接赋值给一个变量。 后面的下划线 表示 这个函数不执行,只赋值。

Last updated