¿Qué significa la*(estrella) en Ruby?
splat (1)
Posible duplicado:
¿Qué hace el operador * de esta cadena en Ruby?
Probablemente hay una respuesta para eso en otro lugar, pero no sé cómo encontrarlo ...
Si tengo razón, el *
significa múltiples parámetros si se usa en la definición de la función:
def hero(name, *super_powers)
Pero, ¿qué hace *
en el código de esta manera:
Hash[*[[:first_name, ''Shane''], [:last_name, ''Harvie'']].flatten] # => {:first_name=>"Shane", :last_name=>"Harvie"}
Lista de argumentos de longitud variable, operador de asterisco
El último parámetro de un método puede ir precedido por un asterisco (*), que a veces se denomina operador "splat". Esto indica que se pueden pasar más parámetros a la función. Esos parámetros se recogen y se crea una matriz.
El operador de asterisco también puede preceder a un argumento de Array en una llamada de método. En este caso, la matriz se expandirá y los valores se pasarán como si estuvieran separados por comas.