基本的东西,我不想罗嗦,像前缀,匈牙利命名等,这些一抓一把。
我现在觉得,幻数尤其讨厌,很容易记混淆,一定要以一个有意义的名字来记忆,这样一看就
懂!
看起来我像在说废话,其实不然,很多人不愿意用常量命名的原因就在于,常量的名字写起来
很麻烦,假如一个变量在程序里面用20次,如果写幻数,每次写1个数字,敲键盘的次数是1,如
果写名字,长一点的,敲键盘的次数是8或者9,显然效率要低很多,所以对于懒人,能不用常量
命名,就不用常量命名。这就是为什么常量命名在新手中间总是难以推广的主要原因!
事实上新手往往不知道,IDE都提供了关键字自动完成的功能,这里以vb为例,但是据我所知
.net的关键字自动完成做的更好,而我最钟爱的delphi(可惜我1年没有碰她了)也不差,如果
装了coderush那更是如虎添翼。按下ctrl+j常量,枚举,函数,统统地出来了,所以命名写的
有意义一点,敲入头2~3个字母,ctrl+j一下,上下选选,就ok了,这样不费事,读代码读的也
爽,希望新手能善加运用。
最近才发现,其实常量不如枚举,枚举更爽,把函数里面某个参数定义成枚举,逗号一下,列
表自动就出来了,选一下就ok,所以现在狂喜欢用枚举,参数也尽量做成枚举的形式,这两天
的代码,看起来有意义得多了,而且更重要的是,我已经忘记了枚举里面的具体值是什么了。
这样我绝对不会去写一个幻数在程序中,而是用我的枚举,程序的可读性大大增强。我希望这
篇文章,能给新手一点启发,老手就别过来拍砖了,大家混个脸熟,何必呢?:)
ps:所谓幻数,就是magic number。在程序里面用硬码写的数。比如下面程序
r1 = 6356.863
e1 = 2 * 3.14159265359 * r1 / 1.852
谁明白这是在干什么?
而
const cEearthradius=6356.863
const cPi=3.14159265359
const cSeaMilePerMile=1.852
dbDistance=2*cpi*cearthraduis/cseamilepermile
很明显 distance是把地球大圆的周长转换成海里!
关键是这几个单词难打出来,如果记得ce 然后ctrl+j则可得到cEearthradius这样就容易了,
新手们,希望你们多用命名,不要幻数了,我实在是怕了。