我有一个字符串变量。我想用变量作为键创建一个散列在Ruby1.8中,我使用了hashrocket语法,如下所示:
my_key = 'arbitrary'
my_hash = {my_key => 'my_value'}
在Ruby1.9中,有一个新的语法,我可以这样做:
my_hash = {arbitrary: 'my_value'}
但是如何将变量转换为键呢我试过:
my_key = 'arbitrary'
my_hash = {:my_key 'my_value'}
my_hash = {my_key.to_sym: 'my_value'}
my_hash = {:my_key.to_sym 'my_value'}
my_hash = {my_key.to_sym 'my_value'}
我必须继续使用Ruby1.8语法吗?
最佳答案
让我给你介绍两种做你想做的事的方法如果您不想继续使用1.8语法和hashrockets,ruby-doc.org建议在ruby 1.9.3中这样做:
my_hash = Hash.new
my_key = "key000"
my_hash[my_key] = "my_value"
现场演示:http://ideone.com/yqIx2M
第二个(更类似于你想要达到的目标)是:
my_key = "key0"
my_hash = Hash[my_key, "value00"]
puts my_hash
现场演示:http://ideone.com/HHLyAi