2009-04-02 16 views

Respuesta

13

Es el operador "splat". Se puede usar para explotar matrices y rangos y recopilar valores durante la asignación.

Aquí los valores en una asignación se recogen:

a, *b = 1,2,3,4 

=> a = 1 
    b = [2,3,4] 

En este ejemplo, los valores de la matriz interior (la [3,4] uno) se explota y se recogió para la matriz que contiene:

a = [1,2, *[3,4]] 

=> a = [1,2,3,4] 

Puede definir funciones que recopilan argumentos en una matriz:

def foo(*args) 
    p args 
end 

foo(1,2,"three",4) 

=> [1,2,"three",4] 
+1

¿Por qué esto se bajó? Mi respuesta no entró en detalles sobre ningún aspecto porque no sabía qué bit era confuso para el OP, pero esto es genial para el operador de splat. –

8

Bueno:

  • require pp Las importaciones de la funcionalidad de impresión legible
  • p es un método de impresión legible con varargs, que bonito-imprime cada argumento
  • * significa "expandir el argumento en varargs "en lugar de tratarlo como un único argumento
  • 1..10 es range sequence syntax en Ruby

¿Eso lo explica adecuadamente? Si no, por favor explique qué bit es confuso.

+0

+1 para ac respuesta oncise y purty mientras se vislumbra la marca 50K ... –

Cuestiones relacionadas