【问题标题】:Why does Ruby throw an error for alternate hash syntax?为什么 Ruby 会为备用哈希语法抛出错误?
【发布时间】:2013-07-28 18:36:45
【问题描述】:

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

【问题讨论】:

  • 该语法仅适用于 Ruby 1.9+。您使用的是 1.8。
  • @Blender,我猜到了,但没有 1.9 方便确认。谢谢,我会将我的 ruby​​ 更新到 1.9。谢谢。
  • 没有理由升级到 1.9。 2.0 与 1.9 反向兼容。如果要升级,请升级到 2.0。

标签: ruby


【解决方案1】:

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

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

【讨论】:

  • 好收获。我没有注意到这一点。我搜索了 ruby​​ doc 并开始引用它。谢谢。
【解决方案2】:

这种语法是在 Ruby 1.9 中引入的。您使用的是早于该版本的版本。你不应该再使用 Ruby 1.8。看看这个页面:http://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7/

【讨论】:

  • 谢谢。我正在使用我的 ubuntu 10.04 上默认的 ruby​​。我会马上更新的。
  • 你的 Ubuntu 也老了。你应该先升级它。
  • 是的。我知道,但我会坚持使用 10.04,因为由于 GUI 更改,我不喜欢所有更高版本的 ubuntu。
  • 我同意最新 Ubuntu 上的默认 GUI 很糟糕。很多人也是如此。您可以在最新的 Ubuntu 中使用经典 GUI。它不是默认设置,但通过一些设置,您可以。
猜你喜欢
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 2021-04-27
  • 1970-01-01
  • 2015-01-02
  • 2017-05-23
  • 1970-01-01
  • 2019-08-21
相关资源
最近更新 更多