如果我只是想檢查,如果事情是不可能或不(即,我將不使用的東西像if(possible)
),我應該命名布爾notPossible
和使用if(notPossible)
或者我應該命名爲possible
和使用if(!possible)
呢?命名布爾
可以肯定的是,如果我還要檢查它是否爲possible
,我會命名布爾可能並使用if(possible)
以及else
,對不對?
如果我只是想檢查,如果事情是不可能或不(即,我將不使用的東西像if(possible)
),我應該命名布爾notPossible
和使用if(notPossible)
或者我應該命名爲possible
和使用if(!possible)
呢?命名布爾
可以肯定的是,如果我還要檢查它是否爲possible
,我會命名布爾可能並使用if(possible)
以及else
,對不對?
我傾向於在這裏的積極性方面犯錯,並使用possible
。這意味着有人不能再寫一些代碼,這樣做...
if (!notPossible)
這是不可讀的。
兩個否定......這意味着它完全*不可能正確嗎? – mpen 2010-03-26 21:38:37
或者你可以更進一步,寫下:'if(!notImpossible)' – 2010-03-26 21:47:03
或者如果我們使用Alex的行話if(!lacksImpossibility)' – 2010-03-26 21:49:59
您應該使用isPossible
。
類似notPossible
等布爾值的負面名字是一個非常糟糕的主意。您可能最終不得不編寫諸如if (!notPossible)
之類的代碼,這會使代碼難以閱讀。不要這樣做。
無論哪個更容易閱讀您的特定應用程序。只要確定你沒有結束「if(!notPossible)」。
我認爲最好避免在變量名中使用負數,這樣可以避免if(!notPossible)的雙重否定。
我推薦使用isPossible
。只要命名布爾變量,就可以使用'is'(或者'has')。這是合乎邏輯的,因爲你想知道是否有可能,對吧?
如果你想找出是否有什麼是不可能的? – wrongusername 2010-03-26 21:40:28
你總是可以在'isPossible'上放一個'!',但是你不能把'not'從'notPossible'中取出。 – tloflin 2010-03-26 22:15:21
我喜歡的名字一致短動詞前綴,如is
或has
布爾值,我會找到一個not
前綴獨特而棘手的精神「解析」(所以,我懷疑,代碼會很多讀者,無論是否意識到這種感覺---) - 所以,我要麼命名變量isPossible
(和使用!isPossible
),或只是命名變量isImpossible
(許多形容詞有這樣的方便的反義詞,併爲前綴has
你可以使用前綴lacks
來形成整個事物的反義詞;-)。
我同意負面評論布爾人是一個壞主意,但有時可能以正面的方式重新構建條件。例如,您可以使用pathIsBlocked而不是cannotProceed,或者使用isImortal而不是isNotAbleToDie。
我通常會嘗試命名我的標記,以便它們在使用它們時儘可能精確地讀取。這意味着嘗試命名它們,以便在使用它們時不會被否定。
我知道有些人堅持說所有的名字都是正面的,這樣人們就不會混淆名字和頭腦中的否定。對於類接口中的布爾值來說,這可能是一個很好的策略。但如果它的本地到一個單一的源文件,並且我知道所有的電話都會否定它,我寧可看到if (impossible && ...)
比if (!isPossible && ...)
。
您應該將其命名爲準確存儲的內容。如果您存儲的是否有可能,請將其命名爲isPossible
。如果您要存儲是否不可能將其命名爲isImpossible
。
無論哪種情況,如果您需要檢查兩種情況,您可以使用else
。
從你的描述似乎對你更重要的是要檢查不可能的,所以我會跟isImpossible
去:
if(isImpossible)
{
// ...
}
else
{
//...
}
我寧願保持在正的形式布爾值(isAllowed,可能授權),除非有一個很好的理由來反轉邏輯。 它可以幫助我保持一致的約定,並且我發現!在很多情況下可能更容易閱讀(不可能)(!不可能?)。所有這一切,我通常也試圖避免需要/使用布爾標誌。 – 2010-03-26 21:35:15