1.使用卫语句取代嵌套表达式
函数中的条件逻辑使人难以看清正常的执行途径。使用卫语句表现所有特殊情况。
动机:条件表达式通常有2种表现形式。第一:所有分支都属于正常行为。第二:条件表达式提供的答案中只有一种是正常行为,其他都是不常见的情况。
这2类条件表达式有不同的用途。如果2条分支都是正常行为,就应该使用形如if…..else…..的条件表达式;如果某个条件极其罕见,就应该单独检查该条件,并在该条件为真时立刻从函数中返回。这样的单独检查常常被称为“卫语句”。
修改前:
void func(void) { if(IsWorkDay()) { printf("Error,is work day"); } else { if(IsWorkTime()) { printf("Error ,is work time"); } else { rest(); } } }
修改后:
void func() { if(IsWorkDay()) { printf("Error,is work day"); return; } if(IsWorkTime()) { printf("Error,is work time"); return ; } rest(); }
昨天写代码,发现好多if else ,代码阅读太困难了,一直在找解决方法,直到看到阿里巴巴代码规范的卫语句似乎有了新想法,可以的,小伙子。