いくつかのデフォルト値に初期化したいさまざまな数値または int ベースの変数があるとします。ただし、0 には意味があり、副作用が生じる可能性があるため、0 を使用すると問題が生じる可能性があります。
これに関する規則はありますか?
私は最近 Actionscript で作業しており、オプションのパラメーターを持つさまざまな値オブジェクトを持っているため、ほとんどの変数には null を設定しますが、数値または int には 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 を使用すると問題が発生する可能性があることです。変数に null 値があるかどうかは簡単に検出できます。しかし、0 は正当な値である可能性があるため、0 を検出するのはそれほど簡単ではない場合があります。パラメータをオプションにするためにデフォルト値を設定したいのですが、デバッグしにくい副作用なしに値がデフォルトから変更されたかどうかを後でコードで検出したいと考えています。
値に -1 のようなものを使用できると思います。この種のよく知られているコーディング規則があるかどうか疑問に思っていましたか? 変数とデータの性質に依存すると思います。
これは私のスタックオーバーフローに関する最初の質問です。うまくいけば、私の質問の要点は理にかなっています。