我有一个字符串变量。我想使用变量作为键创建一个哈希。在 Ruby 1.8 中,我使用了 hashrocket 语法,如下所示:
my_key = 'arbitrary'
my_hash = {my_key => 'my_value'}
Run Code Online (Sandbox Code Playgroud)
在 Ruby 1.9 中,有一种新语法,我可以这样做:
my_hash = {arbitrary: 'my_value'}
Run Code Online (Sandbox Code Playgroud)
但是如何将变量转换为键?我试过:
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'}
Run Code Online (Sandbox Code Playgroud)
我是否必须继续使用 Ruby 1.8 语法?
让我向您介绍两种方法来做您真正想做的事情。如果您不想再继续使用 1.8 语法和 hashrockets,ruby-doc.org建议在 Ruby 1.9.3 中这样做:
my_hash = Hash.new
my_key = "key000"
my_hash[my_key] = "my_value"
Run Code Online (Sandbox Code Playgroud)
现场演示:http ://ideone.com/yqIx2M
第二个(更类似于您要实现的目标)是:
my_key = "key0"
my_hash = Hash[my_key, "value00"]
puts my_hash
Run Code Online (Sandbox Code Playgroud)
现场演示:http ://ideone.com/HHLyAi
| 归档时间: |
|
| 查看次数: |
5017 次 |
| 最近记录: |