如何使用已具有值的键在Hash对象中追加值.所以,例如,如果我有
>> my_hash = Hash.new
>> my_hash[:my_key] = "Value1"
# then append a value, lets say "Value2" to my hash, using that same key "my_key"
# so that it can be
>> my_hash[:my_key]
=> ["Value1", "Value2"]
Run Code Online (Sandbox Code Playgroud)
我知道编写自己的方法很容易,但我只是想知道是否有内置方法.
luc*_*tte 10
我不知道我是否错过了你的观点但是你考虑过以下几点:
1.9.3 (main):0 > h={}
=> {}
1.9.3 (main):0 > h[:key] = []
=> []
1.9.3 (main):0 > h[:key] << "value1"
=> ["value1"]
1.9.3 (main):0 > h[:key] << "value2"
=> ["value1", "value2"]
1.9.3 (main):0 > h[:key]
=> ["value1", "value2"]
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,Ruby Way,第2版有关于多值哈希的整章.无论如何,这种行为没有内置.
但是,你可以通过一个块来获得一些乐趣Hash.new.
$ irb
>> h = Hash.new { |hash, key| hash[key] = [] }
=> {}
>> h[:a] << "Value1"
=> ["Value1"]
>> h[:a] << "Value2"
=> ["Value1", "Value2"]
>> h
=> {:a=>["Value1", "Value2"]}
>>
Run Code Online (Sandbox Code Playgroud)
如果你想[]=总是附加值,那么你需要修补补丁.再一次,没有内置的工作方式.
| 归档时间: |
|
| 查看次数: |
15172 次 |
| 最近记录: |