是否可以更改在 dart 中执行逻辑或 || 语句的方式。
例如。我有函数 foo()boo() ,它们的返回类型为 bool 。如果我写

(foo() || boo()) ? /* A */ : /* B */;

并且 foo() 返回 true boo() 不会被执行。我希望能够改变这种情况,但找不到这样做的方法。

我很惊讶地看到这无济于事:
bool helper = false;
helper = helper || foo();
helper = helper || boo();
(helper) ? /* A */ : /* B */

最佳答案

boo() 仅在 foo() 返回 true 时执行,因为无论如何结果都是 false(短路)。您必须强制显式执行,例如:

var f = foo();
var b = boo();
(f || b) ? print('false') : print('true');

如果您想内联使用它,您可以使用@AlexandreArdhuin 提到的自定义方法或
[foo(), boo()].reduce((v1, v2) => v1 || v2)
    ? print('false') : print('true');

DartPad 中尝试一下。

关于dart - 我可以强制执行非最佳逻辑条件检查吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30623190/

10-12 06:54