如何将函数传递给Kotlin中的函数
我想将一个或多个函数传递给一个函数,但只要它是一个函数文本或一个包函数,它就可以工作,但当我将它更改为特定类(成员函数)的函数时,我有以下问题 假设我有这两个函数如何将函数传递给Kotlin中的函数,kotlin,Kotlin,我想将一个或多个函数传递给一个函数,但只要它是一个函数文本或一个包函数,它就可以工作,但当我将它更改为特定类(成员函数)的函数时,我有以下问题 假设我有这两个函数 fun foo() { //doSomething } fun bar(function: () -> Unit) { //anotherThing! function() } 当我打电话时 bar(foo()) 或 我遇到了类型不匹配的问题 (必需:()->单位,找到:单位) 注意:我不想这样解决它
fun foo() { //doSomething }
fun bar(function: () -> Unit) {
//anotherThing!
function()
}
当我打电话时
bar(foo())
或
我遇到了类型不匹配的问题
(必需:()->单位,找到:单位)
注意:我不想这样解决它
bar( { foo() } )
或
我刚刚检查了你的例子。这对我很有用。Kotlin版本1.0.0-beta-2423
我刚刚检查了你的例子。这对我很有用。Kotlin版本1.0.0-beta-2423
在Kotlin 1.1及更高版本中,您可以使用。e、 g.
条(::foo)
在和其他早期版本中,无法传递成员函数。此问题在Kotlin 1.1和更高版本中跟踪为。,您可以使用。e、 g.
条(::foo)
在和其他早期版本中,无法传递成员函数。此问题被跟踪为。此功能尚未实现,请看它是否对我有效--它是否是foo成员乐趣?是的,它是一个成员函数(我知道它对包函数有效)好吧,让我们来解决这个问题。此功能尚未实现,请看它是否对我有效--它是否是foo成员乐趣?是的,它是一个成员函数(我知道它对包函数起作用)好吧,让我们来解决这个问题。我忘了说我想传递的函数可以是成员函数,否则你是对的。我忘了说我想传递的函数可以是成员函数,否则你是对的
bar( { foo() } )
bar {
foo()
}