Wie jeder erwähnt, ist es ein "Splat". Das Suchen nach Ruby-Syntax ist unmöglich, und ich habe dies in anderen Fragen gestellt. Die Antwort auf diesen Teil der Frage lautet, dass Sie weiter suchen
asterisk in ruby syntax
in Google. Google ist für Sie da, setzen Sie einfach das, was Sie sehen, in Worte.
Wie viel Ruby-Code ist dieser Code ziemlich dicht. Das
line.split(/=|;/)
macht ein Array von sechs Elementen , first_name, mickey, last_name, mouse, country, usa
. Dann wird der Splat verwendet, um daraus einen Hash zu machen. Jetzt schicken Sie die Ruby-Leute immer, um sich die Splat-Methode anzusehen, da alles in Ruby verfügbar ist. Ich habe keine Ahnung, wo es ist, aber sobald Sie das haben, werden Sie sehen, dass es ein for
durch das Array läuft und den Hash erstellt.
Sie würden nach dem Code in der Kerndokumentation suchen . Wenn Sie es nicht finden können (ich konnte es nicht finden), würden Sie versuchen, einen Code wie diesen zu schreiben (der funktioniert, aber KEIN Ruby-ähnlicher Code ist):
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"]
und dann kann die Ruby-Bande Ihnen sagen, warum Ihr Code albern, schlecht oder einfach falsch ist.
Wenn Sie bis hierher gelesen haben, lesen Sie die Hash- Dokumentation zur Initialisierung durch.
Grundsätzlich werden sie durch einen mit mehreren Argumenten initialisierten Hash als Schlüsselwertpaare erstellt:
Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
In Ihrem Beispiel würde dies also zu folgendem Hash führen:
{"first_name"=>"mickey", "last_name"=>"mouse", "county"=>"usa"}
a,b,*c = d,e,f,*g
setzt a = d, b = e und c = [f, g0, g1, g2, ..., gn], wobei g = [g0, g1, g2, ..., gn]