3.6 高阶函数
本章中不断出现被函数式编程程序员称为高阶函数的操作。高阶函数是指接受另外一个函数作为参数,或返回一个函数的函数。高阶函数不难辨认:看函数签名就够了。如果函数的参数列表里包含函数接口,或该函数返回一个函数接口,那么该函数就是高阶函数。
map是一个高阶函数,因为它的mapper参数是一个函数。事实上,本章介绍的Stream接口中几乎所有的函数都是高阶函数。之前的排序例子中还用到了comparing函数,它接受一个函数作为参数,获取相应的值,同时返回一个Comparator。Comparator可能会被误认为是一个对象,但它有且只有一个抽象方法,所以实际上是一个函数接口。
事实上,可以大胆断言,Comparator实际上应该是个函数,但是那时的Java只有对象,因此才造出了一个类,一个匿名类。成为对象实属巧合,函数接口向正确的方向迈出了一步。
