看到一篇好的文章,关于if-else
源自:
文章地址:https://medium.com/swlh/5-ways-to-replace-if-else-statements-857c0ff19357
文章中作者第一句话:if -else 是一个糟糕的选择
文章主要从5点来说明
1.完全不需要的else模块,下面应该是经常常用的if-else写法了,但是其完全可以更优雅的摒弃else模块
例子:
重构:
感觉逼格瞬间高了
2.值分配
重构: if -else 中当找到一个符合的值后,仍旧会去找下个else 是否符合,但是以下的写法当找到合适的值后就直接返回,不会去继续执行以下部分 。同样代码的可读性和精简性也提高了许多
3.前提条件检查
文中指出:如果方法提供了无效的值,则继续执行是没有意义的。假设我们从以前就有了DefineGender方法,要求提供的输入值必须始终为0或1。没有价值检查的方法
没有值验证就执行该方法没有任何意义。因此,在允许方法继续执行之前,我们需要检查一些先决条件。应用保护子句防御性编码技术,您将检查方法的输入值,然后继续执行if。至此,我们确保仅在值落在预期范围内时才执行主逻辑。
其实个人感觉这个提前检查这个例子不是很好,直接返回3元运算符也很优雅
例子:
重构:
4 用字典项完全避免if -else
感觉还行,可读性提高一点点
例子:
重构:
5.扩展应用程序-完全避免if -else
作者说这个是高级点的写法,哈哈哈,感觉没有if -else 来的清晰,就不研究了,有兴趣的人可以去看下作者的文章
例子:
重构: