android - Kotlin 执行可选 Action

标签 android kotlin

我有一个带有可选高阶函数的模型 (() -> Unit)?

当我想调用那个函数时,我想知道,我怎么能调用它,即使它是可选的。

我知道这行得通

model.action?.invoke()

有类似于 Swift? 的东西,我可以在哪里做:

model.action?()

我知道,我也可以:

model.action?.let { action() }

也许最后一个是“更好”的方法。 你知道一些“更好”的方法吗? 谢谢

最佳答案

这是个人喜好的问题,但我会保留第一个变体,即

model.action?.invoke()

只是因为它只是 safe callinvoke operator并且它没有向表达式中添加更高级别函数(即 let)的负担。

顺便说一句,在某些情况下,如果您在 Idea 中编写类似 model.action?.let { it() } 的内容(至少它适用于基于 Idea 的 Android Studio),您你会收到一条警告,说 let 在这里没用,你可以安全地用普通的安全调用替换它。

关于android - Kotlin 执行可选 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48185165/

相关文章:

java - 私有(private)内部类的构造函数也是私有(private)的吗?

android - 使用重复动画时退出时 flutter 崩溃?

java - Kotlin:如何从 java 类调用 setter 和 getter?

android - 如何让recyclerview加载所有itemviews

java - Android - sqlite in 子句使用数组列表中的字符串值?

java - 应用程序关闭时 Android Studio 音频停止播放

java - 如何在 Kotlin 中编写以下代码以实现回调

android - 如何在 NavHostFragment 中检索当前 fragment ?

kotlin - Kotlin 中的 Swift 枚举等效项

java - 如何使用Javafx Canvas 围绕另一个圆移动一个点?