嵌套if:是否更好地使用if(x){statement;}或if(!x)返回;声明;

时间:2014-11-24 11:06:04

标签: javascript perl coding-style functional-programming

通常认为更好的编程习惯使用如下结构:

if (x == 1) {
  if (y != 1) {
    [code]
  }
}

或像这样使用guard

if (x == 1) {
  if (y == 1)  return;
  [code]
}

第一种风格具有更合理的结构,一目了然哪些代码取决于什么。

但是第二种风格会导致更简单的视觉风格并减少代码行数。

第二种风格被认为是一种坏习惯吗?或者它只是一种风格选择?

[更新] this is a duplicate

2 个答案:

答案 0 :(得分:1)

无论你的'家庭风格'是什么。

编码风格的东西是 - 它确实没关系,只要它在整个代码中是一致的。和你所有同事的代码。

清晰度是王道 - 如果你的代码清楚它正在做什么,这是很好的代码。如果还不清楚它在做什么,那就是糟糕的代码。 (如果每个人都使用不同的风格,那就不清楚了,因此所有你的代码都很糟糕)。就这样。不要担心保存代码行 - 编译器不关心。

答案 1 :(得分:1)

问题不应该是“使用嵌套if或使用guards'更好吗?但是'什么时候使用嵌套的if和什么时候更好?'!

两种方式都有专业人士和专家。 使用if s会促进单点退出,但在嵌套深度时可能难以阅读。 Guards减少了嵌套并且更容易阅读,但创建了多个退出点。

只要你的功能很短,你选择哪个都没关系!