Compte tenu du code Ruby
line = "first_name=mickey;last_name=mouse;country=usa"
record = Hash[*line.split(/=|;/)]
Je comprends tout dans la deuxième ligne à l'exception de l' *
opérateur - que fait-il et où se trouve la documentation à ce sujet? (comme vous pouvez le deviner, la recherche de cette affaire s'avère difficile ...)
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]L'opérateur splat décompresse un tableau passé à une fonction afin que chaque élément soit envoyé à la fonction en tant que paramètre individuel.
Un exemple simple:
C'est tout!
la source
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
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
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 parcourtfor
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):
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:
Donc, dans votre exemple, cela conduirait au hachage suivant:
la source