kotlin - 在 Kotlin 的 lambda 中调用具有参数的函数
问题描述
我有一个 Kotlin 函数fun myFun(book:Book){...}
。如何传递myFun
给接受 lambda 的函数?
fun acceptor(task: (book:Book) -> Unit){ var someBook = ... ... task(someBook) }
解决方案
class MyClass {
fun myFun(book:Book) {
...
}
fun otherThatCallsAccept() {
/* other stuff */
acceptor(::myFun)
}
}
编辑:你不能在acceptor
没有参数的情况下调用,但你可以定义一个默认的空 lambda,
fun acceptor(task: (book:Book) -> Unit = {}) {
/* body here */
}
推荐阅读
- angular - 带纱线的 Angular CLI
- python - 带有“一般”异常消息的条件 `try` 语句
- docker - 在 Gitlab CI 上找不到 Docker 主机名
- reactjs - 当 React 使用 Canvas 时 - 绘图
- javascript - Thymeleaf:在控制器中为数据表定义 URL
- java - 让一个整数转到不同的行
- postgresql - postgres 使用 linux 命令从完整路径复制路径
- lisp - lisp - 错误:没有函数定义:BUTLAST
- django - 错误:未能将一些引用推送到“https://git.heroku.com/xxxxxxxxx.git”
- php - 在产品页面中使用 Prestashop 模块 tpl 变量