我来自Perl背景并学习Ruby。我对Ruby的哈希语法感到困惑。
我指的是http://www.ruby-doc.org/core-2.0/Hash.html
上给出的示例我的Ruby为上面的链接中提到的替代语法抛出语法错误。
此代码可以正常工作:
#!/usr/bin/ruby
options = { :font_size => 10, :font_family => "Arial" }
puts options[:font_size]
然而,此代码会引发语法错误:
#!/usr/bin/ruby
options = { font_size: 10, font_family: "Arial" }
puts options[:font_size]
错误是:
/home/workspace/ruby/so.rb:3: odd number list for Hash
options = { font_size: 10, font_family: "Arial" }
但是,上面粘贴的链接表明它应该有用。
你能指导我在这里缺少什么吗?或者我忽略了一些明显的东西?
顺便说一下,这是我正在使用的Ruby版本:# ruby --version
ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]
答案 0 :(得分:4)
该语法仅适用于Ruby 1.9或更高版本。
请注意,您引用的页面标题中显示“Ruby 2.0”。
答案 1 :(得分:2)
这种语法是在Ruby 1.9中引入的。您使用的是早于此版本的版本。你不应该再使用Ruby 1.8了。请看这个页面:http://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7/。