2013-06-22 83 views
-2

我該如何幹這個紅寶石哈希陣列?重複代碼是一種氣味,但我不知道如何清理它。我該如何幹這個紅寶石哈希陣列?

38 def get_parts(row) 
39  [ 
40  @@line_parts[row][@time[0]].values[0], 
41  @@line_parts[row][@time[1]].values[0], 
42  @@line_parts[row][@time[2]].values[0], 
43  @@line_parts[row][@time[3]].values[0] ] 
44 end 
+0

使用循環?四 –

+0

某些事情對我來說似乎也很可疑是'@@ line_parts'。即使你正在顯示的小代碼,你使用的數組或散列數組似乎是錯誤的。這看起來更像是一個數組實例的工作。 –

+2

爲了讓這個問題留在系統中,可能需要通過顯示你已經考慮/嘗試過的東西來改進。否則,它可以被視爲一個「解決我的問題,所以我不必去做」的情況,這是令人沮喪的。 –

回答

14
def get_parts(row) 
    (0..3).collect {|i| @@line_parts[row][@time[i]].values[0]} 
end 

注使用紅寶石以下特徵:

  • 範圍 - (0..3)
  • 地圖 - (收集)
  • 緊湊塊 - ({ ..})
+5

+1另一種方式:'@time [0..3] .map {| t | @@ line_parts [row] [t] .values.first}'。 – FMc