使用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"
答案 0 :(得分:39)
这是正确的 - 哈希的新冒号表示法仅在键是符号时有效。
对不起,就是这样。
更新:使用ruby 2.2及更高版本中的新表示法支持通用符号(字符串作为键仍然不是):
irb
2.2.2 :001 > {'abc': 5}
=> {:abc=>5}