什么?你不让我用if...else了!!!
摘要
在开发中,我们经常要写 if…else 来判断条件。但是过多的 if…else 会让代码变得冗长难懂不好维护,有什么好方法呢?让我们来听个故事!
正文
故事开始
小白是一名 CocosCreator 程序员,任务是在游戏开发组组长的带领下开发一款游戏。一天,组长发来了一个任务,让小白来处理他传过来的角度值,判断区域。
小白心喜:哈哈,我刚看完的 TypeScript 枚举写法正好用上了!小白整理了一下思路:
“我应该先定义一个区域枚举,组长说是四个区域”
enum Area { |
“然后写一个方法来判断传入的角度”
public getArea (degree: number): Area { |
“最后接收返回值打印就好了”
public onLoad (): void { |
回炉重造
高兴的小白连着测试了几个角度值都正确,他就愉快的提交到 Git 然后去吃午饭。但是没让他想到的是,下午刚回到公司组长就找他谈话:小白,你这代码不行!回去重写,不许出现 if…else!
“什么?你不让我用 if…else 了!!!”终究小白只是心中吼了一下,没敢喊出来。他灰溜溜的回去看自己的代码,却也没个头绪。
这时,他的同事小黑看到了愁眉苦脸的小白问怎么了。待了解了事情的原委后,小黑哈哈一笑:我要是组长我也说你,你这样写代码,如果碰到了 16 个区域判断你要写 16 个 if…else 吗?你难道忘了你学过的数组结构了吗?
小白猛的一拍大腿,对啊!!!
“打印区域用数组改写”
public onLoad (): void { |
“角度判断改写”
public getArea (degree: number): Area { |
字符串枚举
这回小白总算是过关了。小白事后请小黑吃了顿大餐!
在工作之余,小白自己还测试了下字符串枚举。
enum Area { |
同理,不过是换成对象
public onLoad (): void { |
故事到这里就结束了,小伙伴们有没有有所感悟呢?
O(∩_∩)O~~
结语
if 虽好,可不要贪杯哦!
O(∩_∩)O~~
微信公众号
什么?你不让我用if...else了!!!