什么是高阶函数
高阶函数(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
}
}
总结
- 一个函数参数接收另一函数作为参数。可以看成一个函数的参数接收一个函数指针。
- 函数返回一个函数。 可以看成函数返回一个函数指针。