Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 神奇的数字总是坏的吗?_String_Numbers_Constants - Fatal编程技术网

String 神奇的数字总是坏的吗?

String 神奇的数字总是坏的吗?,string,numbers,constants,String,Numbers,Constants,硬编码字符串是自描述性的,并且只能在一个地方使用,这被认为是一种不好的做法吗?您总是用常量变量替换硬编码字符串吗?数字呢?它们是否具有足够的自描述性而不创建变量?你能举一个例子吗?在你的观点里,一个神奇的数字是合适的?< /p> < p>我不知道你想写哪种语言,因为它们都有自己的首选解决方案,但是例如在C/C++中,A EnUM通常是方法。 P> C++ C++ 11的严格类型枚举甚至更好。< P>我不知道你想写哪种语言,因为它们都有自己的首选方案,但是在C/C++中,A EnUM通常是方法。

硬编码字符串是自描述性的,并且只能在一个地方使用,这被认为是一种不好的做法吗?您总是用常量变量替换硬编码字符串吗?数字呢?它们是否具有足够的自描述性而不创建变量?你能举一个例子吗?在你的观点里,一个神奇的数字是合适的?< /p> < p>我不知道你想写哪种语言,因为它们都有自己的首选解决方案,但是例如在C/C++中,A<代码> EnUM<代码>通常是方法。
<> P> C++ C++ 11的严格类型枚举甚至更好。

< P>我不知道你想写哪种语言,因为它们都有自己的首选方案,但是在C/C++中,A<代码> EnUM<代码>通常是方法。


C++11的严格类型枚举甚至更好。

硬编码字符串“只能在一个地方使用”的问题是:如果需要更改字符串,必须在代码中查找。获取程序的版本号。您可能只在从“info”菜单调用的对话框中使用它,但是如果您在那里硬编码它,那么每次更新版本号时,您都必须在“某处”找到字符串。将所有常量字符串放在一个位置会更容易

至于数值——在某些情况下(例如,在科学方程式中),偶然常数可以硬连线。通常,这仅适用于整数(在
圆周=2*pi*半径;
中,没有人会对硬编码的
2
感到畏缩)。其他常量也可以在一个地方更好地定义—更易于调试和维护。例如,我更喜欢只定义一次
pi
(我的首选项:
pi=2*asin(1.0);
)。与
e
e=exp(1.0);
)相同


想想在六个月内查看/使用您的代码的人。你是让他们的生活更轻松还是更艰难?如果他们搬到另一个平台怎么办?这些问题可以帮助您做出正确的选择。

硬编码字符串“只能在一个地方使用”的问题是:如果您需要更改字符串,您必须在代码中查找。获取程序的版本号。您可能只在从“info”菜单调用的对话框中使用它,但是如果您在那里硬编码它,那么每次更新版本号时,您都必须在“某处”找到字符串。将所有常量字符串放在一个位置会更容易

至于数值——在某些情况下(例如,在科学方程式中),偶然常数可以硬连线。通常,这仅适用于整数(在
圆周=2*pi*半径;
中,没有人会对硬编码的
2
感到畏缩)。其他常量也可以在一个地方更好地定义—更易于调试和维护。例如,我更喜欢只定义一次
pi
(我的首选项:
pi=2*asin(1.0);
)。与
e
e=exp(1.0);
)相同


想想在六个月内查看/使用您的代码的人。你是让他们的生活更轻松还是更艰难?如果他们搬到另一个平台怎么办?这些问题可以帮助你做出正确的选择。

所有这些问题的答案都是:“视情况而定”或“这是一个意见问题”。所有这些问题的答案都是:“视情况而定”或“这是一个意见问题”。好的例子和思考的事情,谢谢。好的例子和思考的事情,谢谢。