Como todos mencionan, es un "splat". Buscar la sintaxis de Ruby es imposible, y lo he hecho en otras preguntas. La respuesta a esa parte de la pregunta es que buscas en
asterisk in ruby syntax
en Google. Google está ahí para ti, solo pon lo que ves en palabras.
De todos modos, como muchos códigos Ruby, ese código es bastante denso. los
line.split(/=|;/)
hace que un conjunto de elementos seis, first_name, mickey, last_name, mouse, country, usa
. Luego, el splat se usa para convertirlo en un Hash. Ahora la gente de Ruby siempre te envía a mirar el método Splat, ya que todo está expuesto en Ruby. No tengo idea de dónde está, pero una vez que tenga eso, verá que se ejecuta a for
través de la matriz y crea el hash.
Buscaría el código en la documentación principal . Si no puede encontrarlo (no pude), intente escribir un código como este (que funciona, pero NO es un código similar a Ruby):
line = "first_name=mickey;last_name=mouse;country=usa"
presplat = line.split(/=|;/)
splat = Hash.new
for i in (0..presplat.length-1)
splat[presplat[i]] = presplat[i+1] if i%2==0
end
puts splat["first_name"]
y luego la pandilla Ruby podrá decirte por qué tu código es tonto, malo o simplemente incorrecto.
Si ha leído hasta aquí, lea la documentación de Hash para la inicialización.
Básicamente, un hash que se inicializa con varios argumentos los crea como pares de valores clave:
Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
Entonces, en su ejemplo, esto conduciría al siguiente Hash:
{"first_name"=>"mickey", "last_name"=>"mouse", "county"=>"usa"}
a,b,*c = d,e,f,*g
establece a = d, b = e, y c = [f, g0, g1, g2, ..., gn], donde g = [g0, g1, g2, ..., gn]