2009-06-08 17 views

答えて

3

厳密に言えば、これはif/elseステートメントの略語ではありません。これは、条件演算子と呼ばれる三項演算子です。これらは同じことをしている間、彼らは異なって読むこと

お知らせ:それは大丈夫です

// if the condition is true, we do something... maybe many things 
if (condition) { 
    var = 'something'; 
} else { 
    var = 'something else'; 
} 

// reads more clearly as an assignment based upon a condition 
var = (condition) ? 'something' : 'something else'; 

多くのケースでは、省略形として考えて。時間が経つと、あなたの脳は必要に応じて条件演算子を選択します。足を濡らしているだけで、条件演算子はコードをより簡潔に表現するうえで最適な方法です。代入演算子の右側にある最初の値が未定義/ nullの場合

var myVar:String = someStrThatMightBeNull || "default value if that other value is null"; 

そう、それが使用されます:これはあなたが求めているものに収まるが、これも動作するかどうか

+2

STA場合」ということ明確化のために「テンション」を「条件」と呼ぶべきである。 – Blindy

+0

-1あなたは本当に厳密な等価性についてのあなたの声明と一緒に髪を分割しており、これはいくつかの開発者を捨てるかもしれません。あなたの声明を明確にすると、私は自分のdownvoteを削除します。 –

7

わかりませんリテラル文字列。

+0

私はそれを知らなかった –

+0

これはガードオペレータと呼ばれています。 &&と||の両方ActionScriptのように動作します。 – tehnomaag

6
var myArray:Array = new Array(); 

を置き換えることができます:

var myArray:Array = []; 

同じことがオブジェクトのために行く:

var myObj:Object = new Object(); 

を置き換えることができます:

var myObj:Object = {}; 
4
x ||= 5; // set x to 5 if x evaluates to false 
x || someMethod(); // call someMethod if x evaluates to false 
x && someMethod(); // call someMethod if x evaluates to true 
+0

'|| ='は 'x = xにコンパイルされているようですね。 x:5; 'を指定し、それ自体を再割り当てします。そして、フレックスコンパイラ4.6(私はそう思う)は '|| ='で完全に吐き出す。 Ref:http://www.tillschneidereit.de/2011/10/22/mario-mushroom-now-with-80less-awesome/ – Stray

+0

実際、私たちが望むのは 'x || (x = 5) 'ではなく' x =(x || 5) ' – darscan

関連する問題