2011-09-13 14 views
0

RUBYに次のコードがあると、一連のハッシュをループする必要があります。問題は、varXが文字列であることです。変数にする必要があります。何か案は?forループ内でstringを変数に変換する

element1_old = {:ip => "192.168.0.191", :state => "PA", :county => "ambler"} 
element1_new = {:ip => "192.168.0.191", :state => "PA", :county => "warrington"} 
element2_old = {:ip => "192.168.0.192", :state => "PA", :county => "ambler"} 
element2_new = {:ip => "192.168.0.192", :state => "PA", :county => "ambler"} 
element3_old = {:ip => "192.168.0.200", :state => "PA", :county => "warrington"} 
element3_new = {:ip => "192.168.0.200", :state => "PA", :county => "ambler"} 

for i in 1..3 
    var1 = "element#{i}_old" 
    var2 = "element#{i}_new" 
    p element"#{i}".not_in_both("element#{i}_old") 
end 
+3

より良いデータ構造を使用してください。 – FMc

+0

私はデータソースを作成した人ではありません。 – luckytaxi

答えて

0

別のハッシュにハッシュを投げる:

h = { 
    'element1_old' => {:ip => "192.168.0.191", :state => "PA", :county => "ambler"}, 
    'element1_new' => {:ip => "192.168.0.191", :state => "PA", :county => "warrington"}, 
    'element2_old' => {:ip => "192.168.0.192", :state => "PA", :county => "ambler"}, 
    'element2_new' => {:ip => "192.168.0.192", :state => "PA", :county => "ambler"}, 
    'element3_old' => {:ip => "192.168.0.200", :state => "PA", :county => "warrington"}, 
    'element3_new' => {:ip => "192.168.0.200", :state => "PA", :county => "ambler"} 
} 

for i in 1..3 
    old = h["element#{i}_old"] 
    new = h["element#{i}_new"] 
    p new.not_in_both(old) 
end 

を私はelement"#{i}"が実際にあなたの疑似Rubyの例では、あなたがハッシュにnot_in_bothをサルにパッチを適用していることをelement"#{i}"_newことになっていると仮定しています。

+0

正しい、 'not_in_both'は私が上のコードに貼り付けなかったメソッドです。あなたのコードを試してみます。 – luckytaxi

関連する問題