型チェックについて

"型チェック" とは、変数の型と式の互換性を確認する作業のことです。Flash では、変数に対して指定した型と、その変数に代入した値が一致しているかどうかをチェックします。厳密な型指定とデータ型の割り当ての詳細については、データ型の割り当てと厳密な型指定についておよびデータ型の割り当てを参照してください。

型チェックは、コンパイル時または実行時のいずれかの時点で行われます。厳密な型指定を使用すると、コンパイル時に型チェックが行われます。ActionScript は型指定を動的に行う言語なので、実行時にも型チェックが行われる場合があります。

たとえば、次のコードでは、パラメータ xParam の型を指定していません。実行時には、このパラメータが数値型の値を保持するために使用され、さらに String 型の値を保持するために使用されます。その後、dynamicTest() 関数は、typeof 演算子を使用して、このパラメータがストリング型か数値型かをテストします。

function dynamicTest(xParam) {
    if (typeof(xParam) == "string") {
        var myStr:String = xParam;
        trace("String: " + myStr);
    } else if (typeof(xParam) == "number") {
        var myNum:Number = xParam; 
        trace("Number: " + myNum);
    } 
}
dynamicTest(100);
dynamicTest("one hundred");

データ型情報を ActionScript に明示的に追加する必要はありません。ActionScript コンパイラでは、プロパティを使用して、コンパイル時に存在しないメソッドを呼び出すことを許可しています。このため、プロパティを作成したり、実行時にメソッドを動的に割り当てたりすることが可能です。

動的な型チェックによって提供される柔軟性の一例として、コンパイル時には未知のプロパティやメソッドの使用が挙げられます。これにより、コードの制約が緩和されるので、コーディングの状況によっては利点が生まれます。たとえば、次のコードでは runtimeTest() という関数を記述していますが、この関数が呼び出すメソッドと返すプロパティは、いずれもコンパイラにとっては未知のものです。このコードではコンパイル時エラーは発生しませんが、実行時にこのプロパティまたはメソッドにアクセスできない場合は、実行時エラーが発生します。

function runtimeTest(myParam) {
    myParam.someMethod();
    return myParam.someProperty; 
}

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000652.html