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

为什么Ruby会为备用哈希语法抛出错误?,ruby,Ruby,我来自Perl背景,学习Ruby。我对Ruby的哈希语法有点困惑 我指的是上节给出的例子 我的Ruby为上述链接中提到的备用语法抛出一个语法错误 此代码工作正常: #!/usr/bin/ruby options = { :font_size => 10, :font_family => "Arial" } puts options[:font_size] 然而,此代码引发语法错误: #!/usr/bin/ruby options = { font_size: 10, font_fa

我来自Perl背景,学习Ruby。我对Ruby的哈希语法有点困惑

我指的是上节给出的例子

我的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]

这种语法是在Ruby 1.9中引入的。您使用的版本早于此。您不应该再使用Ruby 1.8了。看看这个页面:。

这个语法是在Ruby 1.9中引入的。您使用的版本早于此。您不应该再使用Ruby 1.8了。请看本页:。

该语法仅适用于Ruby 1.9或更高版本


请注意,您引用的页面标题中显示“Ruby 2.0”

这种语法只适用于Ruby 1.9或更高版本


请注意,您引用的页面标题中显示“Ruby 2.0”

这种语法只适用于Ruby 1.9+。你用的是1.8。@Blender,我有点猜到了,但手边没有1.9来确认。谢谢,我将把ruby更新到1.9。谢谢。没有理由升级到1.9。2.0与1.9反向兼容。如果您正在升级,请升级到2.0。这种语法只适用于Ruby 1.9+。你用的是1.8。@Blender,我有点猜到了,但手边没有1.9来确认。谢谢,我将把ruby更新到1.9。谢谢。没有理由升级到1.9。2.0与1.9反向兼容。如果您正在升级,请将其升级到2.0。谢谢。我使用的是ubuntu 10.04默认的ruby。我会马上更新。你的Ubuntu也很旧。你应该先升级。对。我知道,但我会坚持使用10.04,因为我不喜欢所有更新版本的ubuntu,因为GUI有所改变。我同意最新ubuntu上的默认GUI很糟糕。许多人也是如此。您可以将经典GUI与最新的Ubuntu一起使用。它不是默认的,但是有一些设置,你可以。谢谢。我使用的是ubuntu 10.04默认的ruby。我会马上更新。你的Ubuntu也很旧。你应该先升级。对。我知道,但我会坚持使用10.04,因为我不喜欢所有更新版本的ubuntu,因为GUI有所改变。我同意最新ubuntu上的默认GUI很糟糕。许多人也是如此。您可以将经典GUI与最新的Ubuntu一起使用。它不是默认的,但是通过一些设置,你就可以了。我没有注意到。我搜索了ruby文档并开始引用它。谢谢,接得好。我没有注意到。我搜索了ruby文档并开始引用它。谢谢