说我有
arr = [1,2,3]
如何更改此方法以便将每个参数添加到数组中?
def add(*number)
arr << *number
end
所以add(4,5,6)
产生:
arr #=> [1,2,3,4,5,6]
答案 0 :(得分:4)
当通过splat接受参数时,它们总是是一个数组。所以你可以简单地将两个数组加在一起。
def add(*numbers)
arr + numbers
end
答案 1 :(得分:2)
使用concat
:
def add(*nums)
arr.concat nums
end
或+
:
def add(*nums)
arr + nums
end
答案 2 :(得分:0)
$arr = [1,2,3]
def add(*number)
$arr.concat number
end
add(4,5,6)
$arr #=> [1,2,3,4,5,6]
注意:concat
修改其操作的对象($arr
)。加号(+
)没有。
正如Tin Man所提到的,你不想使用全球来做这件事。最好只做
arr.concat [4,5,6]
在函数调用之外。更好的是:
arr += [4,5,6]