2016-03-03 124 views
1

假设您有一个使用两个度量返回值的函数/方法 - 实质上是可能值的二维矩阵。使用逻辑(嵌套的if/switch语句)选择正确的值,还是只是构建该矩阵(作为Array/Hash/Dictionary /其他),然后返回值变成执行查找的问题更好?逻辑或查找表:最佳做法

我的直觉说,对一个中号Ñ矩阵,对于相对小的值既中号Ñ(如≤3)将是即可使用的逻辑,但对于较大的值它会只是建立矩阵更有效率。

什么是这方面的一般最佳实践?那么对于一个N维度矩阵呢?

回答

0

我说的是,约九个条件是if .. else梯子或开关的限制。所以如果你有2D单元格,你可以合理地对上,下,对角线等进行硬编码。如果你去了三个维度,你有27个案例,它太多了,但如果你被限制在六个幼崽脸上,那么可以。 一旦你有很多条件,开始通过查找表编码。

但是没有真正的答案。例如,Windows消息循环需要处理大量不同的消息,并且不能在查找表中明智地对处理代码进行编码。

+0

你在说什么,“ups”,“下降”,“对角线”和“立方体面”? – istrasci

1

的决定取决于多种因素,包括:

  • 哪个选项使代码更易读,从而更易于维护
  • 哪个选项执行得更快,尤其是如果查找发生的时间squillions
  • 矩阵中的值多久改变一次?如果答案是“经常”的,那么最好是将代码外部化,并将它们存储在一个可以简单编辑的方式中。
  • 不仅矩阵有多大,而且它有多稀疏?