as 演算子は、ある値が特定の型に属することを保障したいときに使います。例えば、以下のような使い方です。
var myArray:Array = ["foo"]; var myString:String = myArray[0] as String;
見てのとおり括弧を使用したキャストとよく似ています。
var myArray:Array = ["foo"]; var myString:String = String(myArray[0]);
両者の違いが現れるのは、対象の値が目的の型にキャストできない場合です。括弧を使用したキャストではキャストできないと実行時エラーになります。一方、as 演算子の場合はキャストできないと式の値が null になります。
この動作は目的の型のオブジェクトのみを扱う処理を書く時に便利です。例えば、
for (i = 0; i < myArray.length; i++) { var myObj:MyComponent = myArray[i] as MyComponent; if (myObj) { // myObj の処理を行う } }
のように記述すると、配列の要素が MyComponent に属する値でない場合、myObj が null になるため if ブロック内の処理をスキップさせることができます。
コメントする