据我所知,使用elvis运算符的唯一方法是使用如下语法:
foo = bar ?: return
Run Code Online (Sandbox Code Playgroud)
我很好奇是否有人想出了一种包含日志记录的方法,因为一般情况下,当某些内容没有按预期运行时,会使用返回(至少在我的经验中).
但是,以下语法无效:
foo = bar ?: {
Log.e(TAG, "Some error occurred.")
return
}
Run Code Online (Sandbox Code Playgroud)
当然我可以简单地做以下事情,
foo = bar
if (foo == null) {
Log.e(TAG, "Some error occurred.")
return
}
Run Code Online (Sandbox Code Playgroud)
但有没有办法包括使用Elvis运营商进行日志记录?
hot*_*key 11
只需使用run { ... }函数from kotlin-stdlib,它运行传递的lambda:
foo = bar ?: run {
Log.e(TAG, "Some error occurred.")
return
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
449 次 |
| 最近记录: |