飞镖-空运算符

时间:2020-07-28 09:52:08

标签: dart

我需要类似的东西:

if (variable != null) {
  otherVariable = variable;
}

是否可以使用NullOperators编写更整洁的方法?我想到的是:

(variable != null) ? otherVariable = variable : null;

2 个答案:

答案 0 :(得分:2)

Dart中目前没有特殊的运算符,该运算符允许赋值依赖于 assigned 的值非空。

最接近的运算符是??=,其中otherVariable ??= variable;的作用与您想要的相反:如果 variableotherVariable分配给otherVariable null,如果variable为非null则不是。

您可以使用??并与otherVariable = variable ?? otherVariable;一起使用,如果otherVariablevariable,则null的当前值将分配给它自己。在这种情况下,它仍会执行分配,如果otherVariable setter

我只会和if (variable != null) otherVariable = variable;一起去。目前,这是最短的代码,可以精确地完成您想要的操作:如果otherVariable不是variable,则仅分配给null

答案 1 :(得分:0)

这是最短的方法:

otherVariable = (variable != null) ? variable : null;

但是在您的情况下,如果它为null,那么为什么在变量已经为null时将其分配为“ null”?您可以这样做:

otherVariable = variable;

在两个代码中发生相同的事情。请使用第二个代码,因为它很短,如果必须用类似以下的替换“ null”,请使用第一个:

otherVariable = (variable != null) ? variable : 'default';