逻辑或查找表:最佳做法
问题描述:
假设您有一个使用两个度量返回值的函数/方法 - 实质上是可能值的二维矩阵。使用逻辑(嵌套的if/switch语句)选择正确的值,还是只是构建该矩阵(作为Array/Hash/Dictionary /其他),然后返回值变成执行查找的问题更好?逻辑或查找表:最佳做法
我的直觉说,对一个中号⨉Ñ矩阵,对于相对小的值既中号和Ñ(如≤3)将是即可使用的逻辑,但对于较大的值它会只是建立矩阵更有效率。
什么是这方面的一般最佳实践?那么对于一个N维度矩阵呢?
答
我说的是,约九个条件是if .. else*或开关的限制。所以如果你有2D单元格,你可以合理地对上,下,对角线等进行硬编码。如果你去了三个维度,你有27个案例,它太多了,但如果你被限制在六个幼崽脸上,那么可以。 一旦你有很多条件,开始通过查找表编码。
但是没有真正的答案。例如,Windows消息循环需要处理大量不同的消息,并且不能在查找表中明智地对处理代码进行编码。
答
的决定取决于多种因素,包括:
- 哪个选项使代码更易读,从而更易于维护
- 哪个选项执行得更快,尤其是如果查找发生的时间squillions
- 矩阵中的值多久改变一次?如果答案是“经常”的,那么最好是将代码外部化,并将它们存储在一个可以简单编辑的方式中。
- 不仅矩阵有多大,而且它有多稀疏?
你在说什么,“ups”,“下降”,“对角线”和“立方体面”? – istrasci