如何使用短路和foo() || bar()
运算符来模拟foo() && bar()
和?:
?
我是一名学生,从未使用过?:
运算符,并且想尝试。经过一番谷歌搜索,我发现它本质上是:
Condition ? (things to do if true) : (things to do if false);
在不使用&&
和||
的情况下是否可以实现?我正在尝试解决短路问题,因为我对此非常陌生,并且即将到来的决赛!
答案 0 :(得分:2)
假设foo()
和bar()
都返回boolean
,然后
foo() || bar()
与
相同foo() ? true : bar();
因为首先评估foo()
,并且仅在bar()
为假的情况下才需要评估foo()
。
同样,
foo() && bar()
与
相同foo() ? bar() : false;
foo()
首先被评估,bar()
仅在foo()
为真时才需要评估。