在Kotlin中的lambda内部具有参数的调用函数

时间:2019-06-10 20:01:28

标签: kotlin lambda higher-order-functions

我有一个Kotlin函数fun myFun(book:Book){...}。如何将myFun传递给接受lambda的函数?

有趣的接受者(任务:(图书:图书)->单位){      var someBook = ...      ...      任务(someBook)    }

1 个答案:

答案 0 :(得分:2)

class MyClass {

    fun myFun(book:Book) {
        ...
    }

    fun otherThatCallsAccept() {
        /* other stuff */
        acceptor(::myFun)
    }
}

编辑:没有参数就无法调用acceptor,但是您可以定义默认的空lambda,

fun acceptor(task: (book:Book) -> Unit = {}) {
    /* body here */
}