
Lambda
和高阶函数
你现在的位置 4
339
将
lambda
作为函数参数
除了将
lambda
赋值给变量,你还可以使用一个或多个
lambda
作为
函数参数。这样做允许你将特定的行为传入更加通用的函数中。
要了解这是如何工作的,我们将编写一个函数
convert
,它使用
一些公式转换通过
lambda
传入的
Double
对象,打印其结果并返
回。这允许我们将温度从摄氏转换为华氏,或是将体重从千克转
换为磅。如何转换将取决于我们在
lambda
参数中传入的公式。
我们将从定义函数参数开始。
fun convert(x: Double,
converter: (Double) -> Double ) : Double {
//Code to convert the Double
}
通过指定其名字和类型将
lambda
参数添加到
函数中
我们需要告诉
convert
函数两件事情,以便它将一个
Double
对
象转换为另一个:想要转换的
Double
对象,以及定义如何进行
转换的
lambda
表达式。因此,我们将为
convert
函数定义两个参
数:
Double
和
lambda
。
你可以使用与定义任何其他类型的函数参数相同的方式定义
lambda
参数:指定参数的类型和名字。我们将命名该
lambda
为
converter
,由于希望
lambda
将
Double
转换为
Double
,其
类型应该为
(Double)->Double
(一个接受
Double
参数并返回
Double
值的
lambda
)。
该函数定义如下(不包括函数体)。如你所见,它指定了两个参
数(名为 ...