Que signifie le * (étoile) dans Ruby? [dupliquer]

possible Duplicate:

Que fait l'opérateur * à cette chaîne dans Ruby

il y a Probablement réponses qu'ailleurs, mais je ne sais pas comment le trouver...

si j'ai raison, le * signifie plusieurs paramètres si utilisé dans la définition de la fonction:

def hero(name, *super_powers)

mais qu'est-ce que * dans le code comme ceci:

Hash[*[[:first_name, 'Shane'], [:last_name, 'Harvie']].flatten] # => {:first_name=>"Shane", :last_name=>"Harvie"}
20
demandé sur Community 2010-11-13 02:53:00

1 réponses

De Longueur Variable De La Liste D'Arguments, Astérisque Opérateur

Le dernier paramètre d'une méthode peut être précédés d'un astérisque(*), qui est parfois appelé le "splat" opérateur. Cela indique que plusieurs paramètres peuvent être passés à la fonction. Ces paramètres sont recueillis et un tableau est créé.

l'opérateur d'astérisque peut aussi précéder un argument de tableau dans un appel de méthode. Dans ce cas, le tableau sera étendu et les valeurs passées en comme s'ils étaient séparés par des virgules.

41
répondu osgx 2010-11-12 23:56:41