1

我什么时候应该使用这样的东西而不是常规的 Switch 语句?各自的优缺点是什么?

function ABC(i, j, a) {
  var ops = {
    'add': function(i, j) { return i + j; },
    'minus': function(i, j) { return i - j; },
    'multiply': function(i, j) { return i * j; },
    'random': function(i, j) {
      return ops[['add', 'minus', 'multiply'][Math.floor(Math.random() * 3)]](i, j);
    }
  };
  return ops[a](i, j);
}
4

1 回答 1

1

优点:它更灵活。您可以在任何地方定义函数,并且可以在运行时重新分配它们,甚至以编程方式生成字典,如果有可以分解的模式,这是一个巨大的胜利。您也可以稍后重用字典,或将其传递。

缺点:在编译语言中,它可能会更慢。(使用 JIT 并不重要。)对于小代码片段,切换版本更具可读性。

就我个人而言,我更喜欢 dict 方法,但我还是主要用 Python 编写代码。

于 2012-08-30T04:54:04.753 回答