【2023】Kotlin教程 第二篇 面向对象与函数式编程 第13章 函数式编程基石——高阶函数和Lambda表达式 13.2 高阶函数 13.2.1 函数类型

【2023】Kotlin教程

在这里插入图片描述

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

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

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

13.2 高阶函数

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

13.2.1 函数类型

Kotlin中每一个函数都有一个类型,称为“函数类型”,函数类型作为一种数据类型与数据类型在使用场景没有区别。可以声明变量,也可以作为其他函数的参数或者其他函数的返回值使用。

现有如下3个函数的定义:

// 定义计算长方形面积的函数
// 函数类型(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

// 函数类型 () → Unit
fun sayHello() {
    
    
    println("Hello, world.")
}

fun main() {
    
    

    val getArea: (Double, Double) -> Double = ::triangleArea

    // 调用函数
    val area = getArea(50.0, 40.0)
    println(area)

}

在这里插入图片描述

上述代码中,函数rectangleArea 和triangleArea.具有相同的函数类型(Double,Double) ->Double。

函数类型就是把函数参数列表中的参数类型保留下来,再加上箭头符号和返回类型,形式如下:

参数列表中的参数类型->返回类型

每一个函数都有函数类型,即便是函数列表中没有参数,以及没有返回值的函数也有函数类型,如sayHello()函数,sayHello()函数的函数类型是()->Unit。

猜你喜欢

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