オプションの引数を入力できない場合、デフォルトのNullが使用できないのはなぜですか?
-
05-07-2019 - |
質問
ActionScript 3では、デフォルト値を指定してオプションの引数を宣言する場合、型指定された引数に値 null を使用できません。
function Action(Param:int=null){
// 1184: Incompatible default value of type Null where int is expected.
}
function Action(Param:int=0){
// No compiler errors
}
これの回避策、またはすべてのデータ型に適用できる汎用値はありますか
解決
intをNumberに変更してから、NaNに設定できます。NaNは「not a number」を意味する特別な番号で、これはNumberのnull状態を表すことができます。
何かがNaNかどうかを確認するには、 val == NaN
ではなくisNaN()関数を使用する必要があります。そうしないと、期待したものが得られません。
function Action(param:Number = NaN) : void {
trace(param);
}
他のすべてのオブジェクトについては、nullに設定できますが、Actionscriptでは「プリミティブ」番号の処理が異なります。
他のヒント
int変数はnullにできない
代わりに、nullの代わりにNaNを特別な数値として使用できます。何かがNaNかどうかを確認する場合は、isNaN関数を使用します。
パラメータをintからnumberに昇格させないように、メソッドシグネチャにフラグを含めることもできます。
function whatever(intProvided:Boolean = false, someInt:int = 0):void
{
if(intProvided)
doSomeStuff();
}
所属していません StackOverflow