【2023】Kotlin教程 第二篇 面向对象与函数式编程 第13章 函数式编程基石——高阶函数和Lambda表达式 13.2 高阶函数 13.2.4 函数作为参数使用

【2023】Kotlin教程

在这里插入图片描述

第二篇 面向对象与函数式编程

第13章 函数式编程基石——高阶函数和Lambda表达式

函数式编程思想虽然与面向对象一样立即悠久,但是支持函数式编程的计算机语言不过是近几年的事情。这些语言有Swift、Python、Java 8和C++ 11等,作为新生的语言Kotlin也支持函数式编程。

13.2 高阶函数

函数式编程的关键是高阶函数的支持。一个函数可以作为另一个函数的参数,或者返回值,那么这个函数就是“高阶函数”。

13.2.4 函数作为参数使用

高阶函数还可以接收另一个函数作为参数使用。下面来看一个函数作为参数使用的示例:

// 定义计算长方形面积的函数
// 函数类型(Double, Double) → Double
fun rectangleArea(width: Double, height: Double): Double {
    
    
    return width * height;
}

// 定义计算三角形面积的函数
// 函数类型(Double, Double) → Double
fun triangleArea(bottom: Double, height: Double) = 0.5 * bottom * height

// 高阶函数, funName参数是函数类型
fun getAreaByFunc(funcName: (Double, Double) -> Double, a: Double, b: Double): Double {
    
    
    return funcName(a, b)
}

fun main() {
    
    

    // 获得计算三角形的面积函数
    var result = getAreaByFunc(::triangleArea, 10.0, 15.0)
    println("底10 高15的三角形面积为: $result")

    // 获得计算长方形的面积函数
    result = getAreaByFunc(::rectangleArea, 10.0, 15.0)
    println("宽10 高15的长方形面积为: $result")

}

在这里插入图片描述

不管用什么方法,都是对函数类型的使用,(Double, Double) → Double,没啥难的,与其他类型的用法一样。

猜你喜欢

转载自blog.csdn.net/weixin_44226181/article/details/130024457