オプションの引数を入力できない場合、デフォルトのNullが使用できないのはなぜですか?

StackOverflow https://stackoverflow.com/questions/1003100

質問

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();
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top