Как передать массив методу, который принимает атрибут с оператором splat? - PullRequest
13 голосов
/ 13 июля 2011

Если у меня есть такой метод, как:

def sum *numbers
  numbers.inject{|sum, number| sum += number}
end

Как мне передать массив в виде чисел?

ruby-1.9.2-p180 :044 > sum 1,2,3   #=> 6
ruby-1.9.2-p180 :045 > sum([1,2,3])   #=> [1, 2, 3]

Обратите внимание, что я не могу изменить метод sum для принятия массива.

Ответы [ 2 ]

23 голосов
/ 13 июля 2011

Просто ставить восклицательный знак при вызове метода?

sum(*[1,2,3])
4 голосов
/ 13 июля 2011

Вы имели в виду это?

sum(*[1,2,3])

@ Догберт был первым

...