2010-09-15 5 views
3

Dans Ruby, j'ai un code similaire à Comme le compilateur/interpréteur les éléments suivantsAsterisk dans le bloc Liste des paramètres

foo { |x, y| puts y } 

ne cesse de me avertissement au sujet de la non utilisée var X, je l'ai remplacé x avec un « * » et le compilateur arrêté de se plaindre. (Je ne sais pas pourquoi j'ai décidé * était le meilleur choix ... Il vient de se passer ...)

foo { |*, y| puts y } 

Qu'est-ce exactement? Et y a-t-il des effets secondaires?

Répondre

4

L'astérisque dans ce contexte est appelé l'opérateur « Splat ». Cela signifie que vous pouvez passer plusieurs paramètres à sa place et que le bloc les verra comme un tableau.

Je ne sais pas comment ou pourquoi cela fonctionne sans nom variable après, bien que (par exemple foo { |*x, y| puts y }). Je suppose que cela signifie que le bloc ignore tous les paramètres sauf le dernier, qu'il imprime.

Questions connexes