2009-07-18 8 views
2

Je pense que la réponse est simplement: «Non, vous ne pouvez pas faire cela», mais mes pensées sont toujours fausses à propos de Ruby.Affectation parallèle et plages

Je suis en train de le faire en Ruby

city, state, zip = (0..2) 

cela se traduit dans la ville étant une plage et les autres étant nul, ce qui est pas ce que je veux. Est-ce qu'il y a un moyen de faire ça?

Répondre

8

Avec opérateur floc

city, state, zip = *(0..2) 

avec le cast à un tableau

city, state, zip = (0..2).to_a 
+0

Parfait, merci! –

+0

Alors, quelle est la différence entre splat et to_a? Au moins dans ce cas, le résultat est toujours un tableau. –

+0

Il n'y a pas de différence dans ce cas. En termes pratiques, l'opérateur splat remplace essentiellement un élément Enumerable par ses éléments constitutifs. Donc si vous écrivez '[[1,2], * [3], 4]', le résultat est '[1,2,3,4]'. – Chuck

6

Oui

city, state, zip = *(0..2) 
+0

Ooh Je ne pensais jamais d'utiliser l'opérateur de floc pour l'attribution ... – guns

+0

+1, merci Dario ... –