Comme tout le monde le mentionne, c'est un "splat". Chercher la syntaxe Ruby est impossible, et je l'ai déjà demandé dans d'autres questions. La réponse à cette partie de la question est que vous cherchez sur
asterisk in ruby syntax
dans Google. Google est là pour vous, il suffit de mettre en mots ce que vous voyez.
Quoi qu'il en soit, comme beaucoup de code Ruby, ce code est assez dense. Le site
line.split(/=|;/)
fait un tableau de SIX éléments, first_name, mickey, last_name, mouse, country, usa
. Ensuite, la méthode Splat est utilisée pour transformer le tout en un Hash. Les gens de Ruby vous envoient toujours voir la méthode Splat, puisque tout est exposé en Ruby. Je n'ai aucune idée de l'endroit où elle se trouve, mais une fois que vous l'aurez, vous verrez qu'elle exécute une méthode for
à travers le tableau et construit le hachage.
Il faut chercher le code dans la section noyau dur documentation. Si vous ne la trouvez pas (je n'ai pas pu), vous pouvez essayer d'écrire un code comme celui-ci (qui fonctionne, mais qui n'est PAS un 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 l'équipe de Ruby pourra alors vous dire pourquoi votre code est stupide, mauvais ou tout simplement erroné.
Si vous avez lu jusqu'ici, jetez un coup d'oeil à la page Hash pour l'initialisation.
En gros, un hachage initialisé avec plusieurs arguments les crée sous forme de paires clé-valeur :
Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
Ainsi, dans votre exemple, cela conduirait au hachage suivant :
{"first_name"=>"mickey", "last_name"=>"mouse", "county"=>"usa"}