为什么键入的可选参数的默认值为Null?

Rob*_*cks 6 null arguments actionscript-3 optional-parameters

在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
} 
Run Code Online (Sandbox Code Playgroud)

此变通方法或可应用于所有数据类型的通用值的任何变通方法?

Kek*_*koa 9

您可以将int更改为Number,然后可以将其设置为NaN,这是一个特殊数字,表示"非数字",这可以表示数字的空状态.

要检查某些东西是否为NaN,您必须使用isNaN()函数val == NaN,否则您将无法获得预期的结果.

function Action(param:Number = NaN) : void {
    trace(param);
}
Run Code Online (Sandbox Code Playgroud)

对于所有其他对象,您可以将它们设置为null,但在Actionscript中处理"原始"数字的方式不同.


alb*_*ein 5

int变量不能为null,这就是为什么你得到那个错误,只有像对象这样的引用类型可以为null

相反,您可以使用NaN作为特殊数字而不是null.如果你想检查是否有NaN,你可以使用isNaN函数.