赋值作为三元的一部分 if
Assignment as part of ternary if
我在我们的代码库中找到了以下片段。这是被广泛使用并且没有引起任何问题的代码,我不明白为什么。
element = someBoolean ?
element = parentElement :
element;
第二行是不是应该将element
重置为空值或者设置为parentElement
之后的东西
ETA:我想知道 element = parentElement
子句的 return 值是多少,因为那里似乎没有任何 return 值。我忘记了java中有多次赋值的概念,所以元素会被设置两次。
Shouldn't the second line be resetting element to an empty value or
something after it is set to parentElement
我不知道你为什么会这么想。整个语句的目的是潜在地将 element
重新分配给 parentElement
。该语句等效于:
element = someBoolean ?
parentElement:
element;
这是因为赋值语句 (element = parentElement
) 具有 RHS 值(即 parentElement
)。不过,我会简单地这样写:
if (someBoolean) {
element = parentElement;
}
赋值非常无用,因为您的代码可以写成...
element = someBoolean ?
parentElement:
element;
只是在你的代码中,你没有立即return parentElement
,而是先将element
设置为parentElement
,然后将element
设置为element
.
我在我们的代码库中找到了以下片段。这是被广泛使用并且没有引起任何问题的代码,我不明白为什么。
element = someBoolean ?
element = parentElement :
element;
第二行是不是应该将element
重置为空值或者设置为parentElement
ETA:我想知道 element = parentElement
子句的 return 值是多少,因为那里似乎没有任何 return 值。我忘记了java中有多次赋值的概念,所以元素会被设置两次。
Shouldn't the second line be resetting element to an empty value or something after it is set to parentElement
我不知道你为什么会这么想。整个语句的目的是潜在地将 element
重新分配给 parentElement
。该语句等效于:
element = someBoolean ?
parentElement:
element;
这是因为赋值语句 (element = parentElement
) 具有 RHS 值(即 parentElement
)。不过,我会简单地这样写:
if (someBoolean) {
element = parentElement;
}
赋值非常无用,因为您的代码可以写成...
element = someBoolean ?
parentElement:
element;
只是在你的代码中,你没有立即return parentElement
,而是先将element
设置为parentElement
,然后将element
设置为element
.