这个风格指南对我很有用,但我遇到了规则 #5:
通常,应尽量减少使用此类常量。在许多情况下,将值作为方法实现是更好的选择:
int getMaxIterations() // NOT: MAX_ITERATIONS = 25
{
return 25;
}
我从风格的角度理解这个推理:你不仅取消了“大喊大叫”的常量声明,而且还减少了正在使用的语言结构的数量(如果这是不正确的术语,请原谅我),使程序更容易理解。
但是,这种方法是否会对编译器产生负面影响,或者现代编译器(或者实际上是较旧的编译器..)能够足够提前确定您的 getMaxIterations 函数每次都返回相同的数字?
确实,再三考虑,编译器是否甚至需要向前看?样式指南建议方法方法比使用常量值更好,我猜这是正确的,因为“常量”值在其在任何范围内的使用完成后不需要保存在内存中?
总之,我的问题是:不鼓励使用常量值,如果是,为什么?
(对于奖励积分,将常量值声明为方法和常量之间有什么技术区别?)