如何将lambda函数作为参数传递给Android中使用Kotlin的另一个函数



我试图使用一个lambda方法,它将添加两个数字,我试图将该方法作为参数传递给另一个方法。但我无法做到这一点。有人能帮我一下吗?

不仅是Int,我还需要了解如何在这里使用string。

让我们假设,您正在尝试将两个整数相加,并且它返回的结果当然也是整数。在Kotlin中,我们可以像下面这样简单地创建一个lambda函数:

fun addTwoNumbers(): (Int, Int) -> Int = { first, second -> first + second }

这意味着,addtwonnumbers ()将接受2个Int形参它还将返回一个Int

类型。为了更好地理解,现在让我们来分析一下:

(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

最新更新