在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
}
此解决方法或可应用于所有数据类型的通用值?
答案 0 :(得分:9)
您可以将int更改为Number,然后将其设置为NaN,这是一个特殊数字,表示“非数字”,这可以表示数字的空状态。
要检查某些内容是否为NaN,您必须使用isNaN()函数而不是val == NaN
,否则您将无法获得所期望的内容。
function Action(param:Number = NaN) : void {
trace(param);
}
对于所有其他对象,您可以将它们设置为null,但在Actionscript中处理“原始”数字的方式不同。
答案 1 :(得分:5)
int变量不能为null,这就是为什么你得到那个错误,只有像对象这样的引用类型可以为null
相反,您可以使用NaN作为特殊数字而不是null。如果你想检查某些东西是否为NaN,你可以使用isNaN函数。
答案 2 :(得分:0)
您还可以在方法签名中包含一个标志,以避免将参数从int提升为数字:
function whatever(intProvided:Boolean = false, someInt:int = 0):void
{
if(intProvided)
doSomeStuff();
}