有人可以向我解释这一行代码的含义以及这是否是一种好习惯吗?
在我看来,它正在尝试为 boolean 值分配一个或另一个值,但目前尚不清楚。
myBoolVar = isC || isP || isX;
最佳答案
The ||
operator represents a conditional OR.
如果isC,isP或isX中的任何一个为true,则myBoolVar将为true。
它类似于 boolean 操作数之间的| operator,不同之处在于,如果左侧求值为true,则不会对右侧求值。
至于它是否很好,请考虑一个更冗长的语义等效项:
bool myBoolVar;
if (isC)
{
myBoolVar = true;
}
else if (isP)
{
myBoolVar = true;
}
else if (isX)
{
myBoolVar = true;
}
尤其要考虑您要保留哪一个。在大多数情况下,我希望人们认为Terser
myBoolVar = isC || isP || isX;
更具可读性。我从下面的评论中看到,您对编程的论点是简单,而不是“炫耀”。我同意程序员通常会为了自己的满意而尝试压缩或故意混淆代码,这常常对项目不利。这些情况之一可能是而不是。我可以更清楚地命名变量,也可以将其封装在适当命名的属性后面,但是我肯定会在更详细的内容上使用
a || b || c
构造。如果您认为自己有更清晰的表达方式,请与我们分享,我们可以进行讨论。