不知道从什么时候养成的习惯,每天非得到晚上一两点才会想收拾上床.尽管有时候真的没有事情做.边听音乐边瞎看.也许这就是晚睡强迫症吧.
数组越界
不可否认, 晚上写写代码效率还是可以得到保证的, 没有干扰,写出的代码一般来说比较正确.那天看到代码库里有这样的代码:
1 2 3 | if (arr.length > 5) { int y = arr[6]; } |
if (arr.length > 5) { int y = arr[6]; }
如果 数组 arr 的长度大于 5, 那么就取第 7 个元素赋值给 变量 y. 如果用中文写出来, 估计程序员也能马上明白问题出在哪儿了.数组越界是最经常出现在错误.在软件公司里,需要培养能够帮助你, 能够读懂你代码的人.代码审核就特别重要.
动不动就 if . else
有些很简单的逻辑, 很直白的代码翻译并不一定是效率最高的.比如有一个输入整数 n, 想把其中几个位 bit 给清掉.可以这么写:
1 2 3 | if ((n & bit) == bit) { n -= bit; } |
if ((n & bit) == bit) { n -= bit; }
如果 bit 都是设置了,那么就清掉.但实际上可以这么做:
1 | n &= (~bit); |
n &= (~bit);
其实这两个是有点小区别的[见此英文贴].第二中方法不一定需要所给的 bit 都在 n 中设置了.通过 逻辑反 (bitwise not) 把 n 中 bit 位设置成 0.
一点的代码优化也可以造成很大的区别,特别是如果这样的代码需要被调用成千上万次.判断往往会破坏代码的行云流水,能避免就避免.
— xxx —
2点了, 我得去睡觉了.晚安!
强烈推荐
- 英国代购-畅购英伦
- TopCashBack 返现 (英国购物必备, 积少成多, 我2年来一共得了3000多英镑)
- Quidco 返现 (也是很不错的英国返现网站, 返现率高)
- 注册就送10美元, 免费使用2个月的 DigitalOcean 云主机(性价比超高, 每月只需5美元)
- 注册就送10美元, 免费使用4个月的 Vultr 云主机(性价比超高, 每月只需2.5美元)
- 注册就送10美元, 免费使用2个月的 阿里 云主机(性价比超高, 每月只需4.5美元)
- 注册就送20美元, 免费使用4个月的 Linode 云主机(性价比超高, 每月只需5美元) (折扣码: PodCastInit2022)
- PlusNet 英国光纤(超快, 超划算! 用户名 doctorlai)
- 刷了美国运通信用卡一年得到的积分 换了 485英镑
- 注册就送50英镑 – 英国最便宜最划算的电气提供商
- 能把比特币莱特币变现的银行卡! 不需要手续费就可以把虚拟货币法币兑换
微信公众号: 小赖子的英国生活和资讯 JustYYUK