与 splat ruby​​ 连接

ste*_*iel 2 ruby splat

说我有

arr = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

如何更改此方法以便将每个参数添加到数组中?

def add(*number)
  arr << *number
end
Run Code Online (Sandbox Code Playgroud)

所以add(4,5,6)产生:

arr #=> [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

Ale*_*yne 5

当通过 splat 接受参数时,它们将始终是一个数组。所以你可以简单地将两个数组加在一起。

def add(*numbers)
  arr + numbers
end
Run Code Online (Sandbox Code Playgroud)

  • 这在什么版本的 ruby​​ 中有效?我收到错误:“main:Object (NameError) 的未定义局部变量或方法 'arr'” (2认同)
  • 值得注意的是,“#&lt;&lt;”会在“#+”创建新数组时附加。 (2认同)