Ruby on rails 数组文本中的splats

Ruby on rails 数组文本中的splats,ruby-on-rails,ruby,ruby-1.9,Ruby On Rails,Ruby,Ruby 1.9,根据Dave Thomas在pragpub杂志上的最新文章,Ruby 1.9应该接受数组文本中的多个splat参数,例如: 但是在我的机器上,我的解析失败了。在1.9.1p378下,我只返回最后一个数组文本,在1.9.2p0下,我在读取文本之间的逗号时遇到解析错误 ruby-1.9.1-p378 :001 > [ *'2'..'10', *%w{ J Q K A } ] => ["J", "Q", "K", "A"] ruby-1.9.2-p0 > [ *'2'..'1

根据Dave Thomas在pragpub杂志上的最新文章,Ruby 1.9应该接受数组文本中的多个splat参数,例如:

但是在我的机器上,我的解析失败了。在1.9.1p378下,我只返回最后一个数组文本,在1.9.2p0下,我在读取文本之间的逗号时遇到解析错误

ruby-1.9.1-p378 :001 > [ *'2'..'10', *%w{ J Q K A } ]
 => ["J", "Q", "K", "A"] 


ruby-1.9.2-p0 > [ *'2'..'10', *%w{ J Q K A } ]
SyntaxError: compile error
(irb):13: syntax error, unexpected ',', expecting ']'
更新:我的ruby设置:

  ruby:
    interpreter:  "ruby"
    version:      "1.9.2p0"
    date:         "2010-08-18"
    platform:     "x86_64-darwin10.4.0"
    patchlevel:   "2010-08-18 revision 29036"
    full_version: "ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]"
  ruby:
    interpreter:  "ruby"
    version:      "1.9.2p94"
    date:         "2010-12-08"
    platform:     "x86_64-darwin10.5.0"
    patchlevel:   "2010-12-08 revision 30140"
    full_version: "ruby 1.9.2p94 (2010-12-08 revision 30140) [x86_64-darwin10.5.0]"

我很好奇是否还有其他人在使用这种语法?

我获取了1.9.2的head并重新编译,下面是我的设置:

  ruby:
    interpreter:  "ruby"
    version:      "1.9.2p0"
    date:         "2010-08-18"
    platform:     "x86_64-darwin10.4.0"
    patchlevel:   "2010-08-18 revision 29036"
    full_version: "ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]"
  ruby:
    interpreter:  "ruby"
    version:      "1.9.2p94"
    date:         "2010-12-08"
    platform:     "x86_64-darwin10.5.0"
    patchlevel:   "2010-12-08 revision 30140"
    full_version: "ruby 1.9.2p94 (2010-12-08 revision 30140) [x86_64-darwin10.5.0]"
显然,在@Beerlington编译时,它已经被修复了,而且似乎在ruby-edge上也被修复了

ruby-1.9.2-head :001 > [ *'2'..'10', *%w{ J Q K A } ]
 => ["2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"] 

你能像那样画出一个
范围
,而不把它转换成
数组
?编辑:事实证明,即使在1.8中,您也可以。太酷了!WorksForMePerfectly with 1.9.2p0(Win 7 x64)在1.9.1p2431.9.2中也运行良好,旨在取代1.9.1的所有安装,因为它是第一个“生产就绪”版本。耶,奇怪的是,我使用的是1.9.2p0,但它不工作,但我认为,可能在上一次os x升级中存在不兼容,升级后通过重新编译ruby修复了这一问题。我不知道,这是我能想到的最好的猜测。如果你安装了1.9.2-p0,然后安装了雪豹,你就必须重新编译Ruby。Leopard是32位的,SnowLeopard是64位的。您还需要使用本机代码重新编译所有gem,因为它们现在会被破坏。我认为
gem pristine——所有的
都能做到。@greg,不,它是在雪豹下编译的(注意上面的ruby版本表示x86-64),但在最新的雪豹10.5.6升级版之前。在上次更新之后,我不必进行任何重新编译。现在你让我想知道我是否应该。:-)不,“如果它没有坏,就不要修理它。”:-)