kotlin - 如果对象不为空,则创建运行函数的扩展
问题描述
我可以使用 kotlin 扩展函数来执行以下操作吗:
// extension
inline fun <T : Any> T?.runIfNotNull(function: (T) -> Unit) {
this?.let { function(it) }
}
// some function
fun doSomething(int: Int){
// do something
}
// doSomething will be called with maybeNullInt as argument,
// when maybeNullInt is not null
maybeNullInt?.runIfNotNull { doSomething }
基本上,我想要的是替换
maybeNullInt?.let{ doSomething(it) }
和
maybeNullInt?.runIfNotNull { doSomething }
解决方案
let
您可以使用Kotlin 标准库中的函数,而不是创建自己的扩展函数:
maybeNullInt?.let(::doSomething)
::
- 在 Kotlin 中,我们使用此运算符按名称引用函数。
推荐阅读
- vba - 确定复制/粘贴过程的范围/条件
- ios - UISplitViewController 与 tableView 作为 detailView 错误
- javascript - 如何在谷歌地图中使用标记设置价格
- angular - 将请求标头中的用户信息传递到.net core Api中的存储库类的最佳方法是什么
- c# - C# Visual Studio 无法添加对 2 项目的引用
- python - Python:两个对象似乎引用同一个变量,即使它们之间没有任何明确的联系
- command-line - 有没有办法编辑在 Octave CLI 中键入的最后一个 Octave 命令和/或脚本
- javascript - 从多级嵌套数组 JavaScript 中获取所有键值
- c# - 等待内部实体框架上下文和外部有什么区别?
- xamarin - Xamarin 数据绑定到当前属性