用户:
苏文星查看:0 回复:0 评论:0 创建时间:2023-03-19T19:26:23
大家好(๑╹◡╹)ノ”,今天咱来侃侃啥是 Magic Number 。
Magic Number 有3种含义,分别是
| 1、贬义词,指在代码中未说明其含义或用途,让人不明所以的数字
举个例子:
if hours<8760:
...
这里的 8760 是什么意思?虽然我们通过hours可以推出这个数字可能和小时数有关,但是是多少呢?30天?120天?365天?让别人去猜数字含义,而不是直接给出或明示,这里的 8760 就是个Magic Number。(8760=24*356,含义就是365天的小时数)
这种的 Magic Number 使代码难以阅读。所以,我们在写代码时尽量杜绝 Magic Number。改用常量或注释以便于阅读和维护代码。
#改法1
if hours==24*365:
...
#改法2
hour365day=24*365
if hours==hour365day:
...
#改法3
if hours==8760:#判断小时数是否小于356天的小时数
...
| 2、褒义词,魔法数字
最典型的例子就是现代3D游戏之父约翰·卡马克在雷神之锤中的那个魔数:
0x5f3759df
通过这个数字,程序可以非常快速计算一个数字的平方根的倒数。
这个靓丽的喵操作给了其它人非常大的震撼,是那个年代的大神级编程技术的缩影,
所以被人们怀着敬仰之情称之为“魔数”,全称为“如魔法一样神奇的数字”。
| 3、中性词,文件头
某些具有特定格式的文件,喜欢在文件开头写几个特殊的字符以表明自己的身份,以便验明正身。例如常见的几种图片格式的文件:
好了,就谈这么多
感兴趣的同学可以自行去了解更多
下期再见!
参考资料喵question/22018894/answer/1289760974