2013-08-16 5 views
7

この質問は私をかなり悩ませています。プログラミング中に、オブジェクトに何かがあるかどうかという疑問が定期的に存在します。この理由のために、isEmpty方法が発明された。素晴らしいですが、実際には!isEmptyのように使用しています。なぜisEmptyを使用しているのですか?isEmpty時間の99%

結果として、notEmptyは、Javaのような言語にはるかに高く評価されています。問題は、なぜAPIを定義する前に、言語設計者がこれについて考えるのではないのでしょうか? isEmpty

EDIT:少なくともnotEmptyisEmptyがあるはずです。ドメインによっては、どちらも使用できますが、ほとんどの場合UIが含まれていない場合は、notEmptyがうまく適用されます。

EDIT2は:

!metadata.isEmpty() == metadata.notEmpty() 

は、私たちは同様に式の右側を持っていた好む:議論を閉じるには、ここでは一例です。

+0

私は99%の部分に同意しないでしょう。私はisEmptyをほぼ50%の時間使用しました!isEmptyは残りの時間です。 –

+2

なぜですか? '!isEmpty'を使用しているからといって、他のすべての本体がそうであるとは限りません...個人的には、文はより論理的です - IMHO – MadProgrammer

+1

' is 'で始まるメソッド名を持つものがあれば、ない。 –

答えて

6

isEmptyは、より論理的である、などisVisibleisEnabled

+2

バー、私は答えとして私のコメントを投稿しておくべきである:P –

+0

あなたの意見@AlexMDCに感謝します。 – allprog

+0

ええ、しかし、あなたは空でないことを意味する肯定的な言葉を見つけることができます。 'isGotSomethingInIt'と似ていますが、文法的です。あるいは、英語が空でないという単純な言葉がないため、純粋な字句服でこのネガティブな概念を持っていると思っていますか? –

4

get[Something]()の代わりにブール値にis[Something]()を使用するという慣習に従っていると思います。

また、!notEmpty()を使用すると、混乱することがあります。

2

私の意見があるなど、他の構文的に正isXXXメソッドの命名規則に従って==!=好きなので。論理的にはisEmpty!isEmptyの方が分かりやすく分かりやすいです。

関連する問題