注目に値するこの議論にあるポイントがいくつかあります。
Class()はオブジェクトを指定されたClassにキャストしようとしますが、失敗すると(データ型に依存することもあります)、ランタイムエラーが発生します。一方、Classとしてオブジェクトを使用すると、最初に型チェックが実行され、指定されたオブジェクトが指定されたClassにキャストできない場合は、null値が代わりに返されます。
これは非常に重要な違いであり、開発に役立つツールです。それは、私たちは次のことを行うことができます:
var o:MyClass = myArray[i] as MyClass;
if(o)
{
//do stuff
}
私はその有用性はかなり明白だと思います。
"as"も他の言語と一貫しています(つまり、 "myObject is MyClass")。
単純なデータ型(int型、数、UINT、文字列)を扱う場合のMyClass()メソッドは、こののいくつかの例は、追加の利点があります。
var s:String = "89567";
var s2:String = "89 cat";
var n:Number = 1.9897;
var i:int = int(s); // i is = 89567, cast works
var i2:int = int(s2); //Can't convert so i2 is set to 0
var i3:int = int(n); // i = 1
var n2:Number = Number(s2); // fails, n2 = NaN
//when used in equations you'll get very different results
var result:int = int(n) * 10; //result is 10
var result:int = n * 10; //result is 19.89700
var result:int = int(s2) * 10; //result is 0
trace(s2 as Number); //outputs null
trace(s2 as int); //outputs null
trace(Number(s2)); //outputs NaN
これは良いと重要なトピックである、として一般的なルール単純なデータ型を使用するときは、ObjectとCast()を使って作業するときに「as」を使用しますが、これはコードを構造化する方法です。
注意、 fffeの解釈と直接衝突することがよくあります。 「ジェネリック医薬品」という概念が存在しないと本当の – dkretz
が、それはまた、ActionScriptで避けられないですので、あなたは、コンテナから出るものは型なしとなります。 –
(それは、 'VAR fooのに失敗することが望ましいです:[i])とはFoo =はFoo(myarrayの'のではなくヌルを取得し、どこか別の場所NPXに対処)あなたが考えている「他の言語」を、言うとき –