Когда использовать частную константу? - PullRequest
3 голосов
/ 20 октября 2008

Правильно ли использовать частную константу в следующей ситуации:

Допустим, у меня есть игра с переменной жизненного цикла и переменной начального уровня. В начале игры я установил переменную Life равной переменной initialLives. Вот как я обычно это делаю:

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 о том, что вы можете захотеть загрузить значение из файла конфигурации?

Ответы [ 3 ]

6 голосов
/ 20 октября 2008

Да, это хорошее использование const. Как правило, любая «переменная», значение которой не изменяется во время выполнения, должна быть константой. Это позволяет компилятору оптимизировать эти значения, помещая их в отдельную область памяти (ПЗУ). (ПРИМЕЧАНИЕ: это не гарантия того, что ваш компилятор будет оптимизирован, это просто делает возможным .)

4 голосов
/ 20 октября 2008

Поместите его в константу с именем DEFAULT_STARTING_LIVES, но также есть переменная с именем startLives На данный момент, установите начальные значения = DEFAULT_STARTING_LIVES. Позже вы можете установить startLives на основе значения из файла конфигурации. Если файл не был создан или не найден, у вас есть резервная копия.

(спасибо Плинту за расширение моего первоначального ответа.)

2 голосов
/ 20 октября 2008

Я думаю, что частная константа подходит там, где она не используется вне этого контекста, и может привести к беспорядку, если она станет публичной.

Конечно, использование константы в вашем случае лучше, чем магическое число, особенно если вам нужно использовать его более чем в одном месте.

...