版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zsp765098084/article/details/91439054 与高阶函数类似,复合函数的参数也是一个函数,不同的是,复合函数通过中缀表达式定义的函数,最终实现同参数及返回值的各种函数之间的复合运算。 举个例子,实现复合函数m(x) = f(g(x))的运算函数 //首先自定义函数f(x)和g(x) //g(x) val add5 = {i:Int->i+5} //f(x) val multiplyBy2 = {i:Int -> i*2} //首先在学习复合函数之前,我们实现f(g(x))的运算会使用如下调用 fun main(){ val result = multiplyBy2(add5(8)) //传入参数值8 println(result) } 运行结果 26 下面使用kotlin中复合函数的功能实现该功能: //解析 //infix 是中缀表达式,所以最终调用addThen的时候不需要用function.addThen的方式调用,这里addThen是自定义扩展函数 //关于这里的几个泛型参数P1、P2、R,以m(x) = f(g(x))为例 //P1为原始参数x,P2为g(x),R为最终返回值m(x) //关于Function1<P1,P2> 这里P1为参数