2016-03-03 129 views
1

假設您有一個使用兩個度量返回值的函數/方法 - 實質上是可能值的二維矩陣。使用邏輯(嵌套的if/switch語句)選擇正確的值,還是隻是構建該矩陣(作爲Array/Hash/Dictionary /其他),然後返回值變成執行查找的問題更好?邏輯或查找表:最佳做法

我的直覺說,對一個中號Ñ矩陣,對於相對小的值既中號Ñ(如≤3)將是即可使用的邏輯,但對於較大的值它會只是建立矩陣更有效率。

什麼是這方面的一般最佳實踐?那麼對於一個N維度矩陣呢?

回答

0

我說的是,約九個條件是if .. else梯子或開關的限制。所以如果你有2D單元格,你可以合理地對上,下,對角線等進行硬編碼。如果你去了三個維度,你有27個案例,它太多了,但如果你被限制在六個幼崽臉上,那麼可以。 一旦你有很多條件,開始通過查找表編碼。

但是沒有真正的答案。例如,Windows消息循環需要處理大量不同的消息,並且不能在查找表中明智地對處理代碼進行編碼。

+0

你在說什麼,「ups」,「下降」,「對角線」和「立方體面」? – istrasci

1

的決定取決於多種因素,包括:

  • 哪個選項使代碼更易讀,從而更易於維護
  • 哪個選項執行得更快,尤其是如果查找發生的時間squillions
  • 矩陣中的值多久改變一次?如果答案是「經常」的,那麼最好是將代碼外部化,並將它們存儲在一個可以簡單編輯的方式中。
  • 不僅矩陣有多大,而且它有多稀疏?