以卫语句取代嵌套条件表达式(Replace Nested Conditional with Guard Clause)
函数中的条件逻辑使人难以看清正常的执行路径;使用卫语句表现所有特殊情况
一、动机
1、条件表达式所有分支都属于正常行为,使用if...else...
2、如果某个条件极其罕见,就应该单独检查该条件,并在该条件为真时立刻从函数中返回。这样的单独检查常常被称为“卫语句”(guard clauses)
3、如果单一出口能使函数更清楚易读,就使用单一出口,否则就不必这么做
二、做法
1、对于每个检查,放进一个卫语句
2、卫语句要不就从函数中返回,要不就抛出一个异常
3、每次将条件检查替换成卫语句后,编译并测试
4、你常常可以将条件表达式反转,从而实现Replace Nested Conditional with Guard Clauses