类似的东西:
arr=[]
arr[some variable] << string
如何在Ruby上实现这一目标?
谢谢;)
答案 0 :(得分:4)
在Ruby中,Hash
可以被视为关联数组。
# Initialize the hash.
noises = {}
# => {}
# Add items to the hash.
noises[:cow] = 'moo'
# => { :cow => 'moo' }
# Dynamically add items.
animal = 'duck'
noise = 'quack'
noises[animal] = noise
# => { :cow => 'moo', 'duck' => 'quack' }
正如您所看到的,任何东西都可以成为密钥,在此示例中,我使用了符号:cow
和字符串'duck'
。
Ruby Hash documentation包含您可能需要的所有示例。
答案 1 :(得分:4)
哈希是你需要的。当密钥不存在时,您可以利用默认值创建。在你的情况下,这是一个空数组。这是片段:
# this creates you a hash with a default value of an empty array
your_hash = Hash.new { |hash, key| hash[key] = Array.new }
your_hash["x"] << "foo"
your_hash["x"] << "za"
your_hash["y"] << "bar"
your_hash["x"] # ==> ["foo", "za"]
your_hash["y"] # ==> ["bar"]
your_hash["z"] # ==> []
查看Hash类的ruby文档:http://ruby-doc.org/core/classes/Hash.html。
答案 2 :(得分:0)
你应该在Ruby中使用Hash而不是Array。 Ruby中的数组不是关联的。
>> h = {'a' => [1, 2]}
>> key = 'a'
>> value = 3
>> h[key] << value
>> puts h
=> {"a"=>[1, 2, 3]}
答案 3 :(得分:0)
你可以简单地这样做
arr={}
arr["key"] = "string"
或
arr[:key] = "string"
并像
一样访问它arr["key"]
arr[:key]