以下のこれらの条件式の違いは何かについて、私は少し混乱しています。
if( 1 == a) {
//something
}
と
if( a == 1 ) {
//something
}
ダウンロードしたいくつかのスクリプトで上記のものを見ましたが、それらの違いは何だろうと思います。
以下のこれらの条件式の違いは何かについて、私は少し混乱しています。
if( 1 == a) {
//something
}
と
if( a == 1 ) {
//something
}
ダウンロードしたいくつかのスクリプトで上記のものを見ましたが、それらの違いは何だろうと思います。
このconstant == variable
構文は、 のようなタイプミスを避けるためによく使用さ==
れ=
ます。もちろん持っているときもわからずに使われることが多いですconstant == function_call_retuning_nothing_modifiable
。
それ以外には、奇妙なオペレーターのオーバーライドがない限り、違いはありません。
前者はYoda Conditionと名付けられました。
if(1 == a) のように、if(変数 == 定数) の代わりに if(定数 == 変数) を使用します。「空が青いなら」とか「男が背が高いなら」と言っているようなものだからです。
多くのプログラミング言語では、代入a = 1
を式として使用できるため、次のコードが構文的に有効になります (C や多くのスクリプト言語などの条件で整数を使用できる場合)。
if (a = 1) {
// something
}
これが望まれることはめったになく、予期しない動作につながる可能性があります。が使用されている場合、 は無効1 == a
であるため、この間違いは発生し1 = a
ません。
うーん、コツがわからない。一般に、等号は交換可能であると言えます。したがって、a = b は b = a を意味します。ただし、== または === がある場合、これは特定のケースでは機能しません。たとえば、右側に範囲がある場合: 5 === (1..10) 対 (1..10) === 5.