在 Dart 中的条件中进行变量赋值时如何缩短代码?

sni*_*tko 7 conditional conditional-statements dart

这是丑陋的长代码:

var i;
if(true)
  i = 1;
else
  i = 0;
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时:

var i = (true ? 0 : 1);
Run Code Online (Sandbox Code Playgroud)

它不起作用,导致下一行出现错误。我想我在阅读 Dart 的语法规范时有点不专心,所以有人可以告诉我正确的方法吗?

Gün*_*uer 9

从语法的角度来看,这看起来非常好。您可以省略括号。

由于“真”,我在您的示例中在“1”处收到警告“死代码”。
Darteditor 向您显示您编写的代码可能包含错误的提示,因为他知道您的表达式永远不会计算为 1,因为硬编码的“真”。

void main(List<String> args) {
    var b = true;
    var i = b ? 0 : 1;
}
Run Code Online (Sandbox Code Playgroud)

不会产生警告。

  • 问题是“当我在 Dart 的条件中进行变量赋值时如何缩短代码?”。您对主要问题的回答不认为如果以您的方式缩短代码,您可能会遇到运行时错误。`var i = (b == null ? false : true) ? 0 : 1;` (2认同)