是否可以更改在 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/