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