函数式编程 - 第一类函数
如果函数满足以下要求,则称为第一类函数。
它可以作为参数传递给函数。
它可以从函数返回。
它可以分配给变量,然后稍后使用。
Java 8 使用 lambda 表达式支持将函数作为第一类对象。lambda 表达式是函数定义,可以分配给变量,可以作为参数传递,也可以返回。请参见下面的示例−
@FunctionalInterface interface Calculator<X, Y> { public X compute(X a, Y b); } public class FunctionTester { public static void main(String[] args) { //将函数赋值给变量 Calculator<Integer, Integer> calculator = (a,b) -> a * b; //使用函数变量调用函数 System.out.println(calculator.compute(2, 3)); //将函数作为参数传递 printResult(calculator, 2, 3); //获取函数作为返回结果 Calculator<Integer, Integer> calculator1 = getCalculator(); System.out.println(calculator1.compute(2, 3)); } //将函数作为参数 static void printResult(Calculator<Integer, Integer> calculator, Integer a, Integer b){ System.out.println(calculator.compute(a, b)); } //函数作为返回值 static Calculator<Integer, Integer> getCalculator(){ Calculator<Integer, Integer> calculator = (a,b) -> a * b; return calculator; } }
输出
6 6 6