最近在友人依Dâng师的指教下,学到了卫语句(guard clauses)。
卫语句可以使代码中的if else语句更容易理解和阅读。
if else条件在编码中颇常用。然而,过多地嵌套if语句,会使代码很难阅读和编辑。
if(true){
if(true){
if(true){
if(true){
if(true){
if(true){
}
}
}
}
}
}
这时,可以考虑以卫语句代替之。
卫语句之目的,是验证条件,并在条件不满足时立即停止代码执行[1]。
例如以下之代码:
for (int i = 1; i <= 100; i++) {
if (i%3 == 0){
if (i%4 == 0){
if (i%5 == 0){
System.out.println(i);
}
}
}
}
使用卫语句后:
for (int i = 1; i <= 100; i++) {
if (i%3 != 0){
continue;
}
if (i%4 != 0){
continue;
}
if (i%5 != 0){
continue;
}
System.out.println(i);
}
在修改前的代码中,有一个if语句,如果条件成立,就会执行接下来的一系列操作。而在修改后的代码中,这个if语句被改成了一个条件反向的if语句。如果条件不成立,那么就会执行continue
,跳过当前循环迭代,进入下一个迭代。这样做的好处是,原本需要在if语句内部进行的操作现在可以在if语句外部进行,从而减少了代码的嵌套层次。
减少嵌套层次的好处:
- 提高代码可读性:减少嵌套可以让代码更加简洁,易于理解。
- 降低维护难度:简化的代码结构可以帮助开发人员更容易地找到和修复潜在的问题。
- 改善代码风格:遵循一种称为“提前返回”(early return)的编程范式,有助于编写更干净、更容易阅读的代码。
参考资料
- Gélinas, M. (2021年6月14日). Guard Clauses Explained. DEV Community. https://dev.to/maximegel/guard-clauses-explained-13aa
在〈用卫语句(guard clauses)让if else更易阅读〉中有 1 則留言
最近在友人依Dâng师的指教下,学到了卫语句(guard clauses)。 卫语句可以使代码中的if el […]