Comme tout le monde le dit, c'est un «splat». La recherche de la syntaxe Ruby est impossible, et je l'ai posé dans d'autres questions. La réponse à cette partie de la question est que vous recherchez
asterisk in ruby syntax
dans Google. Google est là pour vous, mettez simplement ce que vous voyez en mots.
Quoi qu'il en soit, comme beaucoup de code Ruby, ce code est assez dense. le
line.split(/=|;/)
rend un réseau d'éléments SIX, first_name, mickey, last_name, mouse, country, usa
. Ensuite, le splat est utilisé pour en faire un Hash. Maintenant, les gens de Ruby vous envoient toujours regarder la méthode Splat, puisque tout est exposé dans Ruby. Je n'ai aucune idée de l'endroit où il se trouve, mais une fois que vous l'avez, vous verrez qu'il parcourt for
le tableau et construit le hachage.
Vous recherchez le code dans la documentation principale . Si vous ne pouvez pas le trouver (je ne pourrais pas), vous essayez d'écrire un code comme celui-ci (qui fonctionne, mais n'est PAS du code de type 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"]
et ensuite le gang Ruby pourra vous dire pourquoi votre code est idiot, mauvais ou tout simplement faux.
Si vous avez lu jusqu'ici, lisez la documentation Hash pour l'initialisation.
Fondamentalement, un hachage initialisé avec plusieurs arguments les crée sous forme de paires clé / valeur:
Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
Donc, dans votre exemple, cela conduirait au hachage suivant:
{"first_name"=>"mickey", "last_name"=>"mouse", "county"=>"usa"}
a,b,*c = d,e,f,*g
définit a = d, b = e et c = [f, g0, g1, g2, ..., gn], où g = [g0, g1, g2, ..., gn]