【问题标题】:Is there any ternary operator for just single if condition in dart?飞镖中是否有任何三元运算符仅用于单个 if 条件?
【发布时间】:2020-05-15 18:14:22
【问题描述】:

在 dart 中,我们有很多三元运算符。 但是我们是否有一个仅用于 if 条件的三元运算符?

例子

有条件

if (num == 1){
  print(true);
} else {
  print(false);
}

三进制

print(num == 1 ? true : false);

那么我们是否有任何三元运算符仅用于上述示例的真实条件?

if (num == 1) {
   print(true);
}

【问题讨论】:

  • 你问的目的是什么?构建一个小部件?
  • 不,我只想在dart 中使用它。
  • 如果你能说出真正的目的,我们可以提出任何逻辑!
  • 其实完全没有问题,我只是想要一个非常干净的代码,这就是我提出这个问题的原因。无论如何谢谢你们:)
  • print(num == 1 ??: true);

标签: if-statement flutter dart conditional-statements


【解决方案1】:

没有。

Dart 中的条件运算符?/: 需要所有三个操作数。 这样做是因为所有表达式都必须有一个值,如果你可以只做e1 ? e2,那么如果e1 为假,那么表达式就有no 值。

不可能设想一个二元条件运算符,其中缺少的表达式默认为null,比如(e1?:elseExpression)(e1?thenExpression:),但你也可以只写null,保存四个字母可能是不值得潜在的可读性损失。

Ob 挑剔。 Dart 中的条件运算符是两个三元运算符之一(运算符需要三个操作数,如二元运算符需要两个操作数),另一个三元运算符是[]=

【讨论】:

    【解决方案2】:

    我想知道,既然 && 是短路的,我们可以使用:

    b && f(args) 替换 if(b){ f(args);}

    如果 b 为真,函数 f 将被执行。缺点是 f 必须返回一个布尔值。可以使用 true() 包装函数。

    【讨论】:

      猜你喜欢
      • 2019-07-01
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 2017-01-27
      • 2022-12-06
      • 2019-10-24
      • 2019-01-27
      • 2021-10-16
      相关资源
      最近更新 更多