带字符串键的ruby new hash冒号表示法

时间:2012-09-06 15:17:53

标签: ruby

使用ruby 1.9.3,字符串键似乎不适用于Hash冒号表示法:

1.9.3p194 :005 > {abc: 5}
 => {:abc=>5} 

1.9.3p194 :004 > {'abc': 5}
SyntaxError: (irb):4: syntax error, unexpected ':', expecting tASSOC
{'abc': 5}
       ^

我认为我正在运行正确版本的Ruby

1.9.3p194 :006 > RUBY_ENGINE
 => "ruby" 
1.9.3p194 :007 > RUBY_VERSION
 => "1.9.3" 

1 个答案:

答案 0 :(得分:39)

这是正确的 - 哈希的新冒号表示法仅在键是符号时有效。

对不起,就是这样。

更新:使用ruby 2.2及更高版本中的新表示法支持通用符号(字符串作为键仍然不是):

irb
2.2.2 :001 > {'abc': 5}
=> {:abc=>5}