为什么Ruby会为备用哈希语法抛出错误?

时间:2013-07-29 04:35:47

标签: ruby

我来自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]

2 个答案:

答案 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/