Boolean 命名布尔人

Boolean 命名布尔人,boolean,naming-conventions,naming,Boolean,Naming Conventions,Naming,如果我只想检查某件事是否不可能(即,我不会使用类似如果(可能)),我应该将布尔值命名为不可能并使用如果(不可能),还是应该将其命名为可能并使用如果(!可能) 可以肯定的是,如果我还要检查它是否是可能的,我会将布尔可能命名为如果(可能),并与一起使用否则,对吗?您可能应该使用isPossible 像不可能这样的布尔式否定名称是一个非常糟糕的主意。如果(!notable),您可能最终不得不编写类似于的东西,这使得代码很难阅读。不要这样做。在特定的应用程序中,哪个更容易阅读。只需确保你不会以“如果(!

如果我只想检查某件事是否不可能(即,我不会使用类似
如果(可能)
),我应该将布尔值命名为
不可能
并使用
如果(不可能)
,还是应该将其命名为
可能
并使用
如果(!可能)


可以肯定的是,如果我还要检查它是否是
可能的
,我会将布尔可能命名为
如果(可能)
,并与
一起使用
否则
,对吗?

您可能应该使用
isPossible


不可能
这样的布尔式否定名称是一个非常糟糕的主意。如果(!notable)
,您可能最终不得不编写类似于
的东西,这使得代码很难阅读。不要这样做。

在特定的应用程序中,哪个更容易阅读。只需确保你不会以“如果(!不可能)”结束。

我倾向于在这里偏于积极,而使用
可能。这意味着有人以后不能编写这样做的代码

if (!notPossible)

这是不可读的。

我认为最好避免在变量名中使用负数,这样可以避免if(!notable)的双重负数。

我建议使用
isPossible
。在命名布尔变量时,尽可能使用“is”(或者“has”)似乎很有意义。这是合乎逻辑的,因为你想知道事情是否可能,对吗

我喜欢用一致的短动词前缀来命名布尔词,比如
is
has
,我会发现
not
前缀在心理上“解析”起来既奇特又棘手(因此,我猜想,许多代码读者,不管是否意识到这种感觉;-)--因此,我要么给变量命名
isPossible
(并使用
!isPossible
),或仅将变量命名为
isimpossable
(许多形容词都有这样方便的反义词,对于前缀
has
,您可以使用前缀
looks
来构成整个事物的反义词;-).

我同意以否定的方式命名布尔值是个坏主意,但有时可以用肯定的方式重新定义条件。例如,您可以使用pathIsBlocked而不是CannotProcedue,或者使用IsInnotableToDie而不是isImmortal。我通常尝试命名我的标志,以便它们能够尽可能好地读取在使用它们的地方。这意味着尝试命名它们,这样它们就不必在使用它们的地方被否定


我知道有些人坚持所有名字都是正数,这样人们就不会混淆名字中的否定和他们头脑中的否定。对于类接口中的布尔值来说,这可能是一个很好的策略。但是如果它是单个源文件的本地文件,并且我知道所有的调用都会否定它,我更希望看到
if(不可能&&…)
如果(!isPossible&&…

你应该准确地根据它存储的内容来命名它。如果你在存储它是否可能,那么就命名它
isPossible
。如果你在存储它是否不可能,命名它
isImpossible

在任何一种情况下,如果需要检查这两种情况,您都可以使用
else

根据您的描述,检查不可能对您来说似乎更为重要,因此我选择
isImpossible

if(isImpossible)
{
    // ...
}
else
{
    //...
}

是的,对于负面名称,你必须写上颠倒的代码,比如
if(!(不可能| |不可能))
,而不是更直观的
if(可能&&probable)
…或
useCurrentTariff
hassource
如果适用+1。我总是试图让一切都保持“正面”即使我对负数更感兴趣。另一个例子是使用
is\u open
而不是
is\u closed
…我想主要是为了在这种情况下保持一致性。我更喜欢将布尔值保持为正数形式(允许、可能、授权),除非有很好的理由颠倒逻辑。这有助于我保持一致的约定,我发现!可能更容易阅读,但在许多情况下(!不可能?)。尽管如此,我通常也会尽量避免使用布尔标志。如果你想知道某件事是否不可能,那该怎么办?你可以在
isPossible
上加上
,但你不能把
not
notPossible
中去掉。或者你可以更进一步写:
如果(!notobsible)
或者如果我们使用Alex的行话
如果(!lacksImpossibility)