2011-07-12 2 views
12

私はのようなメソッドを持っている場合:スプラット演算子を持つ属性を受け入れるメソッドに配列を渡すにはどうすればよいですか?

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メソッドを変更することはできません。

答えて

22

メソッドを呼び出すときにスプラットを挿入するだけですか?

sum(*[1,2,3]) 
4

あなたはこれを意味しましたか?

sum(*[1,2,3]) 

@Dogbertは最初

ました