控制抽象
1. 本章作用:减少重复的代码。
2. 高阶函数:将一个函数作为其他函数的参数传递。为了减少重复代码。
2.1 书上的代码示例太墨迹,自己写个例子。
第一步,先看两个函数:
def sum(a: Int,b: Int, c: Int) = a + b + c; //将三个整数相加
def dec(a: Int, b:Int, c: Int) = a - b - c; //将三个整数相减
第二步,再创建一个函数,接收上面两个函数作为他的参数:
deffunManager(fun: (Int, Int, Int) => Int) = {
fun(1,2,3);
}
注:funManager接收一个函数类型的参数,定义参数fun,这个参数的类型就是sum和dec类型。
funManager函数体内,会调用传递进来的函数。
第三步,测试:
同样,也可以把dec作为参数传递到funManager函数中。
注:funManager时,不能够直接传递sum函数的名字,而是要把函数传递进去。即:sum _ 或者 sum(_, _, _)。为什么是这么写,可以参考第八章的偏应用函数。