ruby mengubah array menjadi argumen fungsi

97

Katakanlah saya memiliki array. Saya ingin meneruskan array ke suatu fungsi. Fungsinya, bagaimanapun, mengharapkan dua argumen. Apakah ada cara untuk dengan cepat mengubah array menjadi 2 argumen? Sebagai contoh:

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

Akan menghasilkan kesalahan di Ruby. Saya perlu masukan a.slice(b[0],b[1])Saya mencari sesuatu yang lebih elegan, seperti di a.slice(foo.bar(b)) Terima kasih.

pengguna1134991
sumber

Jawaban:

103

Anda dapat mengubah Arraydaftar argumen dengan *operator (atau "percikan"):

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

Referensi:

Johnsyweb
sumber
1
Ya, itu sempurna. :)
Arup Rakshit
95

Gunakan ini

a.slice(*b)

Ini disebut operator percikan

Sergio Tulentsev
sumber