Ruby splat 用法

标签 ruby arrays splat

我在一篇文章中看到了这方面的插图,但是当我在我的 IRB shell 中尝试它时,我得到了一个错误。以下代码合法吗?否则有没有一种简写的方法来获取中间数组(比如假定排序数组的 1 或 2 个元素的中值)。

irb(main):004:0> first, *middle, last = [42, 43, 44, 45, 46, 47]
SyntaxError: compile error
(irb):4: syntax error, unexpected ',', expecting '='
first, *middle, last = [42, 43, 44, 45, 46, 47]
           ^
from (irb):4
from :0

最佳答案

看来您使用的是 ruby​​ 1.8.7。该语法至少需要 1.9.2 左右。

我知道很多系统附带的系统 ruby​​ 仍然是 1.8.7,但它不再受支持,你真的应该安装 ruby​​ 2.x。

关于Ruby splat 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27650160/

相关文章:

ruby - 将 splat 传递给 nil 作为参数

javascript - 在一组字符串中找到最长的公共(public)起始子字符串

ruby - 如何在 Ruby 中将十六进制转换为二进制(反之亦然),同时保持前导零?

ruby - 这两个 Ruby 符号有什么区别?

c++ - 为什么我不能在 for 循环的第一条语句中包含 2 个变量

arrays - 在 verilog 中连接输入

arrays - 如何使用 Ruby 2.3 中引入的 Array#dig 和 Hash#dig?

ruby-on-rails - 在 Aptana/Eclipse 中调试 Rails 应用程序

ruby - 为什么 REXML 不能解析前面有换行符的 CDATA?

ruby - 在 ruby​​ 中按类或 kind_of 分隔列表项