一部の人々、通常は C のバックグラウンドを持つ人々は、次のnull
ようにテストをコーディングします。
if (null == someVar)
「通常の」スタイルという信念で
if (someVar == null)
誤って次のようにコード化される可能性があります
if (someVar = null)
これは、 test forの代わりにaを誤って割り当ててしまいます。null
null
ただし、次のようなミスコーディングがif (someVar = null)
発生した場合:
- コンパイルするために、唯一の型
someVar
はBoolean
- コンパイルして実行すると、
NullPointerException
なぜこれらの人々は、「守備的」(つまりスクリュー ボール) スタイルがまったく役に立たないことに気付いていないのですか?
ところで、パフォーマンスの問題として、コーディングif (null == someVar)
は実際には実行がわずかに遅くなります-正確には1命令遅くなります。その理由は、null
比較のためにスタックにプッシュする必要があるためです。一方、「通常の」スタイルでは特別な「is null」命令が使用されます。
私は知っています...本当に質問ではありません。もっと暴言。でもそれを世に出したかった。「洞察力に欠ける」と思われる場合は、賛成票を投じてください。
ですが、もしご存知でしたらお聞きしたいです。