【发布时间】:2017-01-17 06:09:56
【问题描述】:
我正在开发一个应用程序,该应用程序在不同的地方包含大量标志检查,例如
if (a && b && c) { func1() }
else if (a && !b && c) { func2() }
else if (!a && b && !c) { func3() }
...
有时一个序列中可能有 10 个检查。
当我有超过 3 张支票时,这看起来相当庞大。 我阅读了有关按位运算和bitmasks technique 的信息,我认为这可以给我一个优雅的解决方案。
不过,我想知道在不同级别的程序员工作的实际项目中使用这些做法是否是一种好习惯。尽量不要成为一个聪明人,而是让代码更优雅但更容易阅读,我应该继续使用if...else还是应该开始使用按位运算?
【问题讨论】:
-
恕我直言,你的队友应该学习按位运算。也就是说,我们不能说这实际上是一个不错的选择,因为您没有提供真实世界的示例:-|
-
我会说这取决于位掩码的暴露程度。给定
a, b, c的掩码,您的队友是否需要编写mask = mask ^ 2以将b设置为false,或者您是否会提供像set_param( name, value )这样的抽象并在后台处理XORing?您如何确保每个人都跟踪十个参数的顺序?
标签: javascript bitwise-operators