在以下情况下使用私有常量是否正确:
假设我有一个带有生命变量和startingLives变量的游戏.在游戏开始时,我将lives变量设置为等于startingLives变量.这就是我通常会这样做的方式:
private var lives:int = 0; private var startingLives:int = 3; private function startGame():void { lives = startingLives; }
(示例代码是ActionScript btw)
我的问题是 - 这真的应该是:
private var lives:int = 0; private const STARTING_LIVES:int = 3; private function startGame():void { lives = STARTING_LIVES; }
StartingLives似乎不太可能在运行时改变,所以我应该使用const,如果事实证明不是常量则更改回变量?
更新:共识似乎是这是一个很好的使用常量,但amdfan的建议,你可能想要从配置文件加载值?
是的,这是一个很好的使用const.作为一般经验法则,任何其值在运行时不会改变的"变量"应该是常量.这使编译器能够通过将它们放在单独的(ROM)内存区域来优化这些值.(注意:这不能保证您的编译器会进行优化,只是使它成为可能.)