14.4 作为参数的函数
在前面我们已经体会到, 一个函数 A 也可以作为参数传递到函数B的内部. 在函数B 的内部, 可以调用函数A.
很多情况下, 我们喜欢把匿名函数作为参数传递出去.
object ParamDemo1 {
def main(args: Array[String]): Unit = {
import scala.math._
// 传入ceil函数 _ 表示在传递函数, 而不是调用函数
println(evaluate(ceil _))
println(evaluate(sqrt _))
println(evaluate(floor _))
// 传入一个匿名函数
print(evaluate(x => x + 10))
}
/*
接收一个函数作为参数.
内部是调用接收到的函数
*/
def evaluate(x: Double => Double): Double = {
x(0.25)
}
}
说明:
evaluate(x: Double => Double)
中的x: Double => Double
表示 x 的类型是一个函数: 这个函数只要一个Double
类型的参数, 返回值为为Double
类型的数据