硬编码字符串是不好的做法,这些字符串是自描述的,只能在一个地方使用?您是否总是用常量变量替换硬编码字符串?数字怎么样?它们是否具有足够的自我描述性而不能创建变量?你能给出一个例子,你认为一个神奇的数字是合适的吗?
答案 0 :(得分:3)
硬编码字符串“只会在一个地方使用”的问题是:如果你需要更改字符串,你必须在你的代码中搜索。获取程序的版本号。您可能只在从“信息”菜单调用的对话框中使用它 - 但如果您在那里硬编码,那么每次更新版本号时都必须找到字符串“somewhere”。在一个地方拥有所有常量字符串可以更容易。
对于数值 - 在某些情况下(例如,在科学方程中)偶尔的常数可以硬接线。通常这只适用于整数(没有人会对2
中的硬编码circumference = 2 * pi * radius;
退缩。其他常量将在一个地方再次更好地定义 - 更容易调试和维护。我更喜欢定义pi
一次,例如(我的偏好:pi = 2 * asin(1.0);
)。与e
(e = exp(1.0);
)相同。
考虑在六个月内查看/使用您的代码的人。你是让他们的生活更轻松还是更难?如果他们搬到不同的平台怎么办?这些问题可以帮助您做出正确的选择。
答案 1 :(得分:0)
我不知道你想用哪种语言写,因为他们都有自己喜欢的解决方案,但例如在C / C ++中,enum
通常就是这样。
C ++ 11的严格类型的枚举甚至更好。