我想像Swift一样在Kotlin中编写后卫let语句。
例如:
guard let e = email.text , !e.isEmpty else { return }
Run Code Online (Sandbox Code Playgroud)
有什么建议或示例代码吗?
KYH*_*ode 16
尝试
val e = email.text ?: run {
// do something, for example: Logging
return@outerFunction
}
Run Code Online (Sandbox Code Playgroud)
如果你之前想做点别的return。
far*_*njk 12
尝试
val e = email.text?.let { it } ?: return
Run Code Online (Sandbox Code Playgroud)
说明:这检查属性email.text是否不是null。如果它不为null,则分配该值并移动以执行下一条语句。否则,它将执行该return语句并中断该方法。
编辑:如@dyukha在评论中所建议,您可以删除多余的let。
val e = email.text ?: return
Run Code Online (Sandbox Code Playgroud)
如果要检查其他任何条件,则可以使用Kotlin的if表达式。
val e = if (email.text.isEmpty()) return else email.text
Run Code Online (Sandbox Code Playgroud)
或尝试(由@Slaw建议)。
val e = email.text.takeIf { it.isNotEmpty() } ?: return
Run Code Online (Sandbox Code Playgroud)
您可能还希望尝试guard按此处实现的功能:https : //github.com/idrougge/KotlinGuard
| 归档时间: |
|
| 查看次数: |
777 次 |
| 最近记录: |