判断程序中 != "特定值" 写法到底好不好?

看下面的代码:

上面的代码,也就是说,只要 a 不等于 F2,就调用 F1(),似乎可以简化成如下代码:

其实上面代码有两个问题:

  • 一是我们看到 "F2",会习惯性认为这是 == "F2",而不是 != "F2",下面的调用代码应该是 F2()。不要忽略习惯的力量,这往往会给我们维护代码带来麻烦。
  • 二是如果我还有个 F3 呢?不好扩展。

那是不是下面的代码好些呢?

这种代码,我觉得可理解性要好些,但也有新问题,如果 "F1" 是命中机率最大的,那么执行 else 的可能性就越大,性能上要差一些,还有一个担心会让人忽略掉 "F1" 这个条件。

其实,我个人觉得本文最上面的代码是最好的(在本文三段代码中比较),当然如果花括号中是一大段代码,而不是简单地调用 F1()、F2(),这段代码就有劣势了,就得采用第三段代码,因为它是最好理解的。

你可能感兴趣的