head, *tail = a
significa asignar el primer elemento de la matriz a
a head
, y asignar el resto de los elementos a tail
.
*
, a veces llamado el "operador de splat", hace una serie de cosas con las matrices. Cuando está en el lado izquierdo de un operador de asignación (=
), como en su ejemplo, simplemente significa "tomar todo lo que sobra".
Si omite el splat en ese código, que haría esto en su lugar:
head, tail = [1, 2, 3, 4, 5]
p head # => 1
p tail # => 2
Pero cuando se agrega el splat a tail
que significa "Todo lo que no fueron asignados a las variables anteriores (head
), asigne al tail
. "
nice answer! :) pero realmente deberías cambiar tu foto de perfil, te ves como un caniche demasiado arreglado;) jeje – horseyguy
Haha. No lo tengo antes. Lo tomaré bajo consideración. :) –
@banister: Su foto actual (tal vez no la misma que se utilizó en ese momento) lo hace parecer Justin Bieber! –