代码写久了,经常有这样一种疑惑,经常能在别人的代码,或者库中见到这样的写法,0 == Tick 或者1 == Number ,为什么不写成 Tick == 0 或者 Number == 1 呢?
相信很多人都遇到过这样的BUG,程序逻辑与设想的不太一样,但是编译却没有报错,仔细检查后发现,原来是把 Tick == 0 写成了Tick = 0,判断条件的语句成了赋值语句,编译器当然不会报错,但是程序已经不能按照预先的设想来跑了。
当判断语句把数字写在前面时,即使敲代码的过程中漏掉了一个=,写成了 0 = Tick,编译器会立即报错,因为常量不能再被赋值,避免了日后找BUG的痛苦。所以经常能见到0 == Tick 或者1 == Number这种写法,也就不奇怪了。