3

次の状況でプライベート定数を使用するのは正しいですか。

ライフ変数と startingLives 変数を持つゲームがあるとします。ゲームの開始時に、変数 lives を startingLives 変数と等しくなるように設定しました。これは私が通常行う方法です:

private var lives:int = 0;
private var startingLives:int = 3;

private function startGame():void
{
   lives = startingLives;
}

(コード例は ActionScript です)

私の質問は-これは本当にあるべきですか:

private var lives:int = 0;
private const STARTING_LIVES:int = 3;

private function startGame():void
{
  lives = STARTING_LIVES;
}

StartingLives は実行時に変更される可能性は低いと思われるので、const を使用し、定数ではないことが判明した場合は変数に戻す必要がありますか?

更新: コンセンサスは、これは定数の適切な使用法であると思われますが、構成ファイルから値をロードすることをお勧めする amdfan の提案はどうですか?

4

3 に答える 3

6

うん、これはconstの良い使い方です。一般的な経験則として、実行時に値が変化しない「変数」は定数にする必要があります。これにより、コンパイラはこれらの値をメモリの別の (ROM) 領域に配置することで最適化できます。(注: これは、コンパイラが最適化することを保証するものではなく、可能にするだけです。)

于 2008-10-20T15:16:32.857 に答える
4

という名前の定数に入れますDEFAULT_STARTING_LIVESが、startingLives という名前の変数もあります。ここでは、 startingLives = を設定しDEFAULT_STARTING_LIVESます。後で、構成ファイルの値に基づいて startingLives を設定できます。ファイルが作成されていないか見つからない場合は、バックアップがあります。

(私の元の答えを拡張してくれたPlinthに感謝します。)

于 2008-10-20T15:16:01.173 に答える
2

プライベート定数は、そのコンテキスト以外では使用できない場合に適切であり、公開すると混乱する可能性があると思います。

確かに、あなたのケースで定数を使用することは、マジックナンバーよりも優れています-特に複数の場所でそれを使用する必要がある場合。

于 2008-10-20T15:16:56.770 に答える