我试图使用一个lambda方法,它将添加两个数字,我试图将该方法作为参数传递给另一个方法。但我无法做到这一点。有人能帮我一下吗?
不仅是Int,我还需要了解如何在这里使用string。
让我们假设,您正在尝试将两个整数相加,并且它返回的结果当然也是整数。在Kotlin中,我们可以像下面这样简单地创建一个lambda函数:
fun addTwoNumbers(): (Int, Int) -> Int = { first, second -> first + second }
类型。为了更好地理解,现在让我们来分析一下:
(Int, Int):这表示addtwonnumbers()将接受2个Int形参。
→(Int):这表示addtwonnumbers()将返回一个Int值作为结果。
还要注意我们是如何使用括号{}的.这就是lambda的定义方式,lambda的功能在括号内提供,像这样:-{first, second ->first + second}.
现在让我们创建另一个方法,该方法将接受lambda作为参数,如下所示:
fun sum(
x: Int,
y: Int,
action: (Int, Int) -> Int //Notice how we are passing the lambda as a parameter to sum() method.
) = action(x, y)
这种类型的函数也被称为高阶函数.
现在,我们可以简单地像下面这样使用它:-
fun main() {
val summation = sum(10, 20, addTwoNumbers())
println(summation)
}
打印30