【问题标题】:Using "?:" to emulate short-circuit evaluation使用“?:”模拟短路评估
【发布时间】:2020-03-29 23:13:46
【问题描述】:

如何使用短路和?: 运算符模拟foo() || bar() 和foo() && bar()?

我是一名学生,从未使用过?: 运算符,我想尝试一下。在做了一些谷歌搜索后,我发现它本质上是:

Condition ? (things to do if true) : (things to do if false);

如果不使用&& 和||,这是否可以实现?我正在努力控制短路,因为我对它很陌生,而且决赛即将到来!

【问题讨论】:

    标签: java short-circuiting


    【解决方案1】:

    假设foo()和bar()都返回boolean,那么

    foo() || bar()
    

    与

    相同
    foo() ? true : bar();
    

    因为foo()首先被评估,而bar()只有在foo()为假时才需要评估。

    同样,

    foo() && bar()
    

    与

    相同
    foo() ? bar() : false;
    

    foo()首先被评估,bar()只有在foo()为真时才需要评估。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-14
      • 2017-01-21
      • 2012-02-10
      • 2010-12-21
      • 1970-01-01
      • 2018-09-01
      • 2010-09-10
      • 2013-05-21
      相关资源
      最近更新 更多