如何将数组传递给接受具有splat运算符的属性的方法?

时间:2011-07-12 20:41:36

标签: ruby splat

如果我有类似的方法:

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 个答案:

答案 0 :(得分:23)

调用方法时只需插入一个splat?

sum(*[1,2,3])

答案 1 :(得分:4)

你的意思是?

sum(*[1,2,3])

@Dogbert是第一次