scala 高阶函数学习

什么是高阶函数

高阶函数(Higher-Order Function)就是操做其余函数的函数。 Scala 中容许使用高阶函数, 高阶函数可使用其余函数做为参数,或者使用函数做为输出结果。函数

demo

object HelloWorld {

  def main(args: Array[String]): Unit = {
   /**
      * 这儿的sumAB 是一个函数对象,能够理解成C语言中的函数指针,指向下面定义的“sumAB”这个函数类型
      * 吧一个函数对象作为参数,传递给execute函数
      */
    execute(sumAB, 2)
    
    /**
      *returnFunc() 返回一个函数,后面接圆括号表示调用返回的函数
      */
    println(returnFunc()(3,4))       
  }

 /**
    * @param t 函数对象。t函数对象接受2个Int的参数,返回值是Int
    *     能够理解成C语言中的函数指针,接受一个指针,该指针是指向 接受两个Int类型的参数返回值是Int的函数
    * @param b Int类型参数
    * @return
    */
  def execute(t:(Int,Int) => Int, b: Int) = {
    println("在 execute方法内")
    println("参数: " + t(b,b))
    t(b,b)
  }

  def sumAB(a: Int, b:Int): Int = {
    println("a+b=" + a+b)
    a+b
  }

  /**
    * 
    * @return 返回函数,能够理解成C语言中的指针函数。该函数返回一个指针,指针(函数指针)。
    *    返回的该指针指向 接受2个Int参数,返回Int值的函数
    */
  def returnFunc():(Int,Int)=>Int = {
    def sumCD(c:Int,d:Int):Int = {
      c+d
    }
    sumCD
  }

}

总结

  1. 一个函数参数接收另外一函数做为参数。能够当作一个函数的参数接收一个函数指针。
  2. 函数返回一个函数。 能够当作函数返回一个函数指针。
相关文章
相关标签/搜索