Nimbus の一部のコードは次のようになっています。
if (nil == someObject)
しかし、私は通常次のように入力します:
if (someObject == nil)
これらのステートメントに違いはありますか?
Nimbus の一部のコードは次のようになっています。
if (nil == someObject)
しかし、私は通常次のように入力します:
if (someObject == nil)
これらのステートメントに違いはありますか?
いいえ。
(SOの最小投稿ルールには余分な何とか何とか。それらは役に立ちませんでしたか?)
機能的には同じですが、コーディング スタイルの問題です。
昔は、等号を忘れてもコンパイラは警告しませんでした。
if (someObject = nil)
おそらくあなたが望むことはしません。しかし、それらを逆にすると:
if (nil = someObject)
その後、コンパイラは文句を言います。
最近では、おそらく違いはありません。
技術的にいいえ。前者のニンバスは、「ヨーダ条件」と呼ばれるものを使用しています。
ここで誰にでもできるゲームの名前です。ほら、問題はこれです:
if (someObject = nil) // SETS someObject to nil
は完全に有効で、 から 1 文字しか離れておらず== nil
、見落としがちです。ただし、これを行おうとすると、次のようになります。
if (nil = someObject)
あなたのコンパイラはびっくりして、問題を防ぎます。
個人的にはYoda Conditionals は読みにくいと思うので嫌いです。それは自分のコードに細心の注意を払うことを意味します。ここではすべてがスタイルにかかっているので、より快適にするものは何でも選びましょう.
ああ、Xcode を使用している場合、これはほとんど議論の余地があります。この質問を確認すると、if
余分な括弧なしで代入を行おうとすると、Xcode が警告を表示するようになったことがわかります。あれは、
if (someObject = nil) // throws a warning, whereas
if ((someObject = nil)) // does not
問題を見逃すのがはるかに難しくなります。
いいえ、しかし以下のコードはより読みやすくなっています。
左側: 「尋問される」という表現。その価値は流動的です。
右側: 比較される式で、値がより一定です。
現在の唯一の違いは、2 番目の形式の方が読みやすいということです (または、主観的なもので、私だけが好むのかもしれません)。