通常认为更好的编程习惯使用如下结构:
if (x == 1) {
if (y != 1) {
[code]
}
}
或像这样使用guard:
if (x == 1) {
if (y == 1) return;
[code]
}
第一种风格具有更合理的结构,一目了然哪些代码取决于什么。
但是第二种风格会导致更简单的视觉风格并减少代码行数。
第二种风格被认为是一种坏习惯吗?或者它只是一种风格选择?
[更新] this is a duplicate
答案 0 :(得分:1)
无论你的'家庭风格'是什么。
编码风格的东西是 - 它确实没关系,只要它在整个代码中是一致的。和你所有同事的代码。
清晰度是王道 - 如果你的代码清楚它正在做什么,这是很好的代码。如果还不清楚它在做什么,那就是糟糕的代码。 (如果每个人都使用不同的风格,那就不清楚了,因此所有你的代码都很糟糕)。就这样。不要担心保存代码行 - 编译器不关心。
答案 1 :(得分:1)
问题不应该是“使用嵌套if
或使用guards'更好吗?但是'什么时候使用嵌套的if
和什么时候更好?'!
两种方式都有专业人士和专家。
使用if
s会促进单点退出,但在嵌套深度时可能难以阅读。
Guards减少了嵌套并且更容易阅读,但创建了多个退出点。
只要你的功能很短,你选择哪个都没关系!