我需要类似的东西:
if (variable != null) {
otherVariable = variable;
}
是否可以使用NullOperators编写更整洁的方法?我想到的是:
(variable != null) ? otherVariable = variable : null;
答案 0 :(得分:2)
Dart中目前没有特殊的运算符,该运算符允许赋值依赖于 assigned 的值非空。
最接近的运算符是??=
,其中otherVariable ??= variable;
的作用与您想要的相反:如果 variable
将otherVariable
分配给otherVariable
为null
,如果variable
为非null则不是。
您可以使用??
并与otherVariable = variable ?? otherVariable;
一起使用,如果otherVariable
为variable
,则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';