代码之家  ›  专栏  ›  技术社区  ›  Chris Judge

风格观点。空If块

  •  2
  • Chris Judge  · 技术社区  · 14 年前

    我正在努力控制一个自称“高级程序员”的坏习惯。他坚持写这样的文章:

    if (expression) {}
    else {
        statements
    }
    

    If expression Then
    Else
        statements
    End If
    

    这个表达可以很容易地被否定:

    if (x == 0) {}
    else {
        statements
    }
    

    除了清晰的编码风格,我还可以提供什么其他的理由来证明我的观点是首选的?

    if (x != 0) {
        statements
    }
    

    If Not expression Then
        statements
    End If
    
    2 回复  |  直到 14 年前
        1
  •  3
  •   ssahmed555    14 年前

    我认为支持你的观点的理由是:

    1. 更易于维护(因为第1点)
    2. 与大多数主要编程语言的“既定”编码风格一致

        2
  •  1
  •   BryanH Philipp Andreychev    12 年前

    then 以及 else 证明一个人已经考虑过这两种情况,即使手术没有结果(NOP)。看起来你的朋友在做这个。

    我发现这种做法并没有给这个领域增加任何价值,因为单元测试会处理这个问题,或者它是不必要的。当然是YMMV。


    其他的

    if (expression) {
    } else {
        statements
    }
    

    原因是它很容易(或很容易意外地)在块外添加一些语句。

    出于这个原因,我讨厌这种形式的单行(裸)语句

    if (expression)
      statement
    

    因为它可以很快地变的很快

    if (expression)
      statement1
      statement2
    

    statement2 将始终运行,即使它看起来应该 expression