このようなものnull
と比較できることがわかりました。Object
if(null != Object)
Object
と比較するのではなくnull
、
Object != null
前者のアプローチを使用すると、何が問題になる可能性がありますか?
それは合法ですか?そうでない場合、なぜコンパイラはそれを受け入れるのですか?
このようなものnull
と比較できることがわかりました。Object
if(null != Object)
Object
と比較するのではなくnull
、
Object != null
前者のアプローチを使用すると、何が問題になる可能性がありますか?
それは合法ですか?そうでない場合、なぜコンパイラはそれを受け入れるのですか?
どちらも同等ですが、オブジェクトに null をnull != object
書き込んで誤って代入することが有効な言語の古い慣行です。if (object = null)
この事故を未然に防ぐガードです。
ほとんどの人はObject != null
、慣れているので読みやすいと言っています。
私が聞いた最良の議論null != object
は、悪い表現を避けることです。たとえば、タイプミスを拾うif (var == 1)
if (var = 1) // this is valid C
if (1 = var) // this is not valid C
それには 1 つの問題があります - 読みやすさです。きれいなコードを書きたい場合は、将来それがどのように読み取られるかを気にする必要があります。それが何をするのか、なぜ特定のことをするのかを明確にする必要があります。「オブジェクト」を評価の右側に配置すると、実際に何をしているかがわかりにくくなります。まあ、少なくとも私の意見では...
あくまでも読みやすさの問題です。コードを声に出して読むことができ、それが理にかなっている場合は、理解しやすくなります。2番目のバージョンはヨーダトークのような..「null is not the object..」と「The object is not null」..
これは、変数とメソッドに適切な名前を付ける場合にも当てはまります。
読みやすいコードを書くための参考サイト: http://www.cleancoders.com/
この!=
演算子は、等価演算子のテストと同じように動作し==
ます。
式の副作用を無視すると、( expr1 != expr2
) と ( expr2 != expr1
) はまったく同じです。
Objectが変数 (または定数) の場合、 ( )null != Object
も同じように有効です (ただし、少し読みにくくなります)。
同じです。if と言っているようなものです1 != 2
。これは意味し2 != 1
ますか?