2009-06-16 76 views
6

在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 
} 

對於這個或所有數據類型都適用的通用值的任何解決方法?

回答

9

您可以將您的int更改爲Number,然後將其設置爲NaN,這是一個特殊數字,意思是「不是數字」,這可以表示Number的空狀態。

要檢查是否是NaN,您必須使用isNaN()函數而不是val == NaN,否則您將得不到您所期望的。

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

對於所有其他對象,可以將它們設置爲空,但「原始」號在ActionScript中不同的處理。

5

INT變量不能爲空,這就是爲什麼你得到這個錯誤,僅供參考類型,如對象可以是空

相反,你可以使用的NaN作爲一個特殊號碼,而不是空。如果你想檢查是否NaN你使用isNaN函數。

0

你也可以包括在此方法的簽名標誌,以避免從int提升爲數字的參數:

function whatever(intProvided:Boolean = false, someInt:int = 0):void 
{ 
    if(intProvided) 
     doSomeStuff(); 
} 
相關問題