魔术数字 (编程) Magic number (programming)
(重定向自DEADBEEF)
编程中所谓的魔术数字(magic number)是指直接写在代码里的具体数值(如「10」「123」等以数字直接写出的值)。虽然程序作者写的时候自己能了解数值的意义,但对其他程序员而言,甚至制作者本人经过一段时间后,会难以了解这个数值的用途,只能苦笑讽刺「这个数值的意义虽然不懂,不过至少程序能够运行,真是个魔术般的数字」而得名。
因为下述理由,一般认为代码中不应该含有魔术数字。
例1:
例1是对输入的价格(price)计算含税(price_tax)售价的程序。 但税率并不是万年不变,当政府调整税率时,会有修改程序的必要。 这里「1.05」就是一种魔术数字,「为什么是1.05」会让人无法马上了解。 下面是去掉魔术数字的范例,程序容易了解也容易修正。