Ruby似乎是一種特別適合解決此問題的語言,但我沒有找到一種優雅的方式來實現它。我想是會接受的值,並將其添加到哈希像這樣,與如果鍵已經存在,它是如何添加特定需求的方法:將未知類型的數據添加到散列表
添加「富」到:KEY1
{:key1 => 'foo'}
添加 '欄' 來:KEY1
{:key1=> 'foobar'}
添加[ '富']到:KEY2
{:key2 = ['foo']}
添加['BA R']到:KEY2
{:key2 => [['foo'], ['bar']]
加入{:K1 => '富'}到:KEY3
{:key3 => {:k1 => 'foo'}}
加入{:K2 => '酒吧'}到:KEY3
{:key3 => {:k1 => 'foo', :k2 => 'bar'}}
現在我可以做到這一點,但它看起來馬虎,而不是像慣用的Ruby。什麼是這樣做的好方法?
我不能說我完全相信你正試圖在這裏做的,但爲什麼不陣列部分' {:key2 => ['foo','bar']}'? – 2011-04-21 15:43:05
如果你剛剛在#Hash上定義了#來做#merge,你可以使用它。 def add(h,k,v); h [k]? h [k] + = v:h [k] = v; end – 2011-04-21 15:52:25
這不是一個好例子,但我只是表明它必須是一個數組數組。 – 2011-04-21 16:04:46