在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,您必须使用isNaN()函数而不是 val == NaN ,否则您将无法获得预期的结果。

function Action(param:Number = NaN) : void {
    trace(param);
}

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

其他提示

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

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

您还可以在方法签名中包含一个标志,以避免将参数从int提升为数字:

function whatever(intProvided:Boolean = false, someInt:int = 0):void
{
    if(intProvided)
        doSomeStuff();
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top