108 votes

ruby convertit un tableau en arguments de fonction

Disons que j'ai un tableau. Je souhaite passer le tableau à une fonction. La fonction, cependant, attend deux arguments. Existe-t-il un moyen de convertir à la volée le tableau en deux arguments ? Par exemple :

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

produirait une erreur dans Ruby. J'ai besoin de saisir a.slice(b[0],b[1]) Je cherche quelque chose de plus élégant, comme dans a.slice(foo.bar(b)) Merci.

124voto

Johnsyweb Points 45395

Vous pouvez transformer un Array dans une liste d'arguments avec l'option * (ou "splat") :

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

Référence :

100voto

Sergio Tulentsev Points 82783

Utilisez cette

a.slice(*b)

C'est l'opérateur splat.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X