假設您有多種基於數字或基於整數的變量,您希望將其初始化爲某個默認值。但是使用0可能會有問題,因爲0是有意義的,可能會有副作用。數字的推薦初始化值
這是否有任何約定?
我一直在Actionscript最近工作,並有可選參數的各種值對象,所以對於我設置爲空的大多數變量,但對於數字或整數我不能使用null。一個例子:
package com.website.app.model.vo
{
public class MyValueObject
{
public function MyValueObject (
_id:String=null,
_amount:Number=0,
_isPurchased:Boolean=false
)
{ // Constructor
if(_id != null) this.id = _id;
if(_amount != 0) this.amount = _amount;
if(_isPurchased != false) this.isPurchased = _isPurchased;
}
public var id:String;
public var amount:Number;
public var isPurchased:Boolean;
}
}
的困難在於,如果該值不是永遠從其初始值改變在上面的代碼中,使用0可能是有問題的。檢測變量是否有空值很容易。但是檢測0可能不是那麼容易,因爲0可能是一個合理的值。我想設置一個默認值,使參數可選,但我也想稍後在我的代碼中檢測值是否從其默認值更改而不難調試副作用。
我想我可以使用類似-1的值作爲值。我想知道這種事情是否有一些衆所周知的編碼慣例?我想這取決於變量和數據的性質。
這是我的第一個堆棧溢出問題。希望我的問題的主旨是有道理的。
對於int或數字類型的參數,Actionscript不接受null。但在閱讀了這個問題: http://stackoverflow.com/questions/1003100/why-cant-typed-optional-arguments-have-a-default-of-null 它看起來像NaN的是等效的空值數字。所以我認爲這回答了我的問題。但我很好奇其他語言中的約定是否存在。 – 2009-07-12 10:59:36