1

根据http://redmine.ruby-lang.org/issues/1183,Ruby 1.9{foo: 42}显然被向后移植到 Ruby 1.8。但我尝试使用 RVM 运行 ruby​​-1.8.7-head,但出现标准语法错误:

Andrew-Grimms-MacBook-Pro:ruby agrimm$ rvm use ruby-1.8.7-head
Using /Users/agrimm/.rvm/gems/ruby-1.8.7-head
Andrew-Grimms-MacBook-Pro:ruby agrimm$ irb
ruby-1.8.7-head :001 > {a: "foo"}
SyntaxError: compile error
(irb):1: odd number list for Hash
{a: "foo"}
   ^
(irb):1: syntax error, unexpected ':', expecting '}'
{a: "foo"}
   ^
(irb):1: syntax error, unexpected '}', expecting $end
    from (irb):1

更改是否已恢复,或者不是对源代码的所有更改都反映在 ruby​​-1.8.7-head 中?

4

1 回答 1

2

检查版本号:此补丁适用于 Ruby 1.8。8,而不是 1.8.7。4 天前才同意的 ruby​​-core 将永远不会发布。截至上周,1.8 正式死亡。

1.8.8 是神话般的过渡版本,可以正确解析但不执行 Ruby 1.9 语法,因此您可以编写类似的东西

if RUBY_VERSION > '1.8'
  ->x { x }
else
  lambda {|x| x }
end

然而,原来想迁移到 Ruby 1.9 的人都已经在迁移了,不想迁移的人也不会被 1.8.8 左右,所以转移任何东西根本没有意义。更多的资源给它。

于 2011-04-11T12:40:09.867 回答