Come menzionano tutti, è uno "splat". Cercare la sintassi di Ruby è impossibile e l'ho posto in altre domande. La risposta a quella parte della domanda è che cerchi
asterisk in ruby syntax
in Google. Google è lì per te, basta esprimere ciò che vedi in parole.
Qualunque utente, come un sacco di codice Ruby, quel codice è piuttosto denso. Il
line.split(/=|;/)
rende un array di elementi SEI, first_name, mickey, last_name, mouse, country, usa
. Quindi lo splat viene usato per trasformarlo in un hash. Ora le persone di Ruby ti inviano sempre a guardare il metodo Splat, poiché tutto è esposto in Ruby. Non ho idea di dove sia, ma una volta che lo avrai, vedrai che passa for
attraverso l'array e crea l'hash.
Dovresti cercare il codice nella documentazione di base . Se non riesci a trovarlo (non potrei), proveresti a scrivere un codice come questo (che funziona, ma NON è un codice simile 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"]
e poi la banda di Ruby sarà in grado di dirti perché il tuo codice è sciocco, cattivo o semplicemente sbagliato.
Se hai letto fino a questo punto, leggi la documentazione di Hash per l'inizializzazione.
Fondamentalmente un hash inizializzato con diversi argomenti li crea come coppie chiave-valore:
Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
Quindi nel tuo esempio questo porterebbe al seguente hash:
{"first_name"=>"mickey", "last_name"=>"mouse", "county"=>"usa"}
a,b,*c = d,e,f,*g
imposta a = d, b = e e c = [f, g0, g1, g2, ..., gn], dove g = [g0, g1, g2, ..., gn]