我有一个带有可选高阶函数的模型 (() -> Unit)?
当我想调用那个函数时,我想知道,我怎么能调用它,即使它是可选的。
我知道这行得通
model.action?.invoke()
有类似于 Swift? 的东西,我可以在哪里做:
model.action?()
我知道,我也可以:
model.action?.let { action() }
也许最后一个是“更好”的方法。 你知道一些“更好”的方法吗? 谢谢
最佳答案
这是个人喜好的问题,但我会保留第一个变体,即
model.action?.invoke()
只是因为它只是 safe call的 invoke operator并且它没有向表达式中添加更高级别函数(即 let
)的负担。
顺便说一句,在某些情况下,如果您在 Idea 中编写类似 model.action?.let { it() }
的内容(至少它适用于基于 Idea 的 Android Studio),您你会收到一条警告,说 let
在这里没用,你可以安全地用普通的安全调用替换它。
关于android - Kotlin 执行可选 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48185165/