2
我怎麼能在Ruby(1.8)中做類似的事情?我的目標是在散列中使用一個變量來分配一個變量。如何在Ruby中使用動態變量名稱嵌套散列?
@keys=""
my_hash = Hash.new { |h,k| h[k]=Hash.new(&h.default_proc) }
line="long:keys:are:here:many:of:them:dont:know:how:much"
line.split(':').each { |x|
@[email protected]+'["'+x+'"]'
}
my_hash#{@keys}=1
#I would like to assign a variable for the following.
# my_hash["long"]["keys"]["are"]["here"]["many"]["of"]["them"]["dont"]["know"]["how"]["many"]=1
不要使用「動態變量名稱」,而要使用給出的原則。 'hashN [keyN] = valueN'並在解析'hashN + 1 = valueN'的行時構建「鏈」。其他人會用'inject'給出一個小例子,我敢肯定。 – 2011-08-25 17:17:02
你確定這是你想要的嗎?因爲分配給「long:keys:are:here:many:of」會清除它下面的所有內容。如果您確定,請查找「autovivification」(例如,http://stackoverflow.com/search?q=%5Bruby%5D+autovivification) –
Bill,好點。我沒有分享整個代碼,但我想檢查一下密鑰的部分是否已經存在並處理它。 – Istvan