web-dev-qa-db-ja.com

ruby配列を関数の引数に変換する

配列があるとしましょう。配列を関数に渡したいです。ただし、この関数には2つの引数が必要です。配列を2つの引数にオンザフライで変換する方法はありますか?例えば:

a = [0,1,2,3,4]
b = [2,3]
a.slice(b)

Rubyでエラーが発生します。 a.slice(b[0],b[1])と入力する必要があります。a.slice(foo.bar(b))ありがとう。もっとエレガントなものを探しています。

90
user1134991

*(または「splat」)演算子を使用して、Arrayを引数リストに変換できます。

a = [0, 1, 2, 3, 4] # => [0, 1, 2, 3, 4]
b = [2, 3] # => [2, 3]
a.slice(*b) # => [2, 3, 4]

参照:

85
Johnsyweb

これを使って

a.slice(*b)

スプラット演算子と呼ばれます

92