【问题标题】:Calling function that has parameter inside lambda in Kotlin在 Kotlin 的 lambda 中调用具有参数的函数
【发布时间】:2019-06-11 05:07:33
【问题描述】:

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

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

【问题讨论】:

    标签: kotlin lambda higher-order-functions


    【解决方案1】:
    class MyClass {
    
        fun myFun(book:Book) {
            ...
        }
    
        fun otherThatCallsAccept() {
            /* other stuff */
            acceptor(::myFun)
        }
    }
    

    编辑:你不能在没有参数的情况下调用acceptor,但你可以定义一个默认的空lambda,

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

    【讨论】:

    • 有没有办法在不带参数的情况下调用acceptor
    • 顺便说一句,感谢您理解这个问题。我问的其他人一直认为我在谈论将函数作为参数传递——甚至 Google 搜索也没有发现任何结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2017-12-09
    相关资源
    最近更新 更多