2

说我有

arr = [1,2,3]

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

def add(*number)
  arr << *number
end

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

arr #=> [1,2,3,4,5,6]
4

3 回答 3

5

通过 splat 接受参数时,它们将始终是一个数组。因此,您可以简单地将两个数组相加。

def add(*numbers)
  arr + numbers
end
于 2013-12-31T19:58:49.527 回答
2

使用concat

def add(*nums)
  arr.concat nums
end

或者+

def add(*nums)
  arr + nums
end
于 2013-12-31T20:00:15.647 回答
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]
于 2013-12-31T20:01:43.663 回答