我有一些这样的伪代码:
fun foo(): Boolean {
println("foo")
return true
}
fun bar() : Boolean {
println("bar")
return false
}
fun main() {
if(foo() || bar()) {
// prints foo
}
}
Run Code Online (Sandbox Code Playgroud)
if语句里面我需要两个表达式进行评估,比如他们foo和bar运行。但是,此代码仅计算第一个表达式并且仅foo打印
正如 Max 所说,使用or是最简单的,通常也是最好的解决方案。
但是,因为了解替代方案总是值得的,所以这里有一个。您可以在逻辑之前进行调用:
val fooResult = foo()
val barResult = bar()
if (fooResult || barResult)
// ...
Run Code Online (Sandbox Code Playgroud)
这是冗长的,需要两个额外的变量。但它的优点是调用是显式的;对于任何阅读代码的人来说,方法总是被调用是显而易见的(如果读者不熟悉,这可能不那么明显or)。如果需要,它为您提供了一个插入调试语句的地方。
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |