Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/11/2007, à 18:18

mickro

[resolu] [ruby] utilisation de each

Bonjour,

je cherche à  parcourir un tableau par couple, alors j'ai essayé ceci dans irb :

["a", "b", "c", "d"].each { |x,y| puts x; puts y}

mais j'obtiens :

a
nil
b
nil
c
nil
d
nil

alors que je voudrais obtenir

a
b
c
d

La chose qui ne doit pas changer c'est le tableau.

Si vous avez la réponse ... smile

Dernière modification par mickro (Le 20/11/2007, à 22:00)


__mickro__

Hors ligne

#2 Le 14/11/2007, à 18:35

vinc-mai

Re : [resolu] [ruby] utilisation de each

Le mieux je pense serait de faire un tableau de couple:

array=[["a","b"],["c","d"],["e","f"]]
array.each{|x| puts x[0];puts x[1]}

sinon

array=["a", "b", "c", "d"]
for i=0..(array.length/2)-1
puts array[2*i]
puts array[2*i+1]
end

J'ai pas testé car j'ai pas ruby sous la main.

Tu n'expliques pas ce que tu comptes faire mais si çà  se trouve l'utilisation de "hash" serait plus indiquée que celle de "array".

Dernière modification par vinc-mai (Le 14/11/2007, à 18:47)


ZiK un lecteur audio et son blog.

Hors ligne

#3 Le 14/11/2007, à 19:02

vinc-mai

Re : [resolu] [ruby] utilisation de each

["a", "b", "c", "d"].each { |x,y| puts x; puts y}

ne marche pas car:

la méthode "each" éxécute un bloc de code {puts x; puts y} pour chaque chaque élément ("a" puis "b" puis "c"...) du tableau ["a", "b", "c", "d"]. Les éléments du tableau sont passés par l'intermédière de la variables |x|. y étant non défini car each ne passe qu'un élément à  chaque "itération", sa valeur vaut nil.


ZiK un lecteur audio et son blog.

Hors ligne

#4 Le 14/11/2007, à 19:24

alexmic

Re : [resolu] [ruby] utilisation de each

Personnellement sur les tableaux à  une dimension je préfère la syntaxe suivante

["a", "b", "c", "d"].each do |t|
   puts t
end

je trouve ça plus compréhensible

Après sur ta syntaxe.... Tu n'as qu'un tableau u UNE dimension... impossible donc de yielder (désolé pour le néologisme) deux paramètres. To code doit être ça :

["a", "b", "c", "d"].each { |x| puts x}

Pour avoir x et y dans les paramêtres il faudrait deux indentations (pour tenter d'être plus clair)...
Soit un tableau de tableaux (cà d un tableau à  deux dimensions du type)

[["a", "b", "c", "d"],["1", "2", "3", "4"]].each do |t,y|
   puts t
   puts y
end

ou bien

[["a", "b", "c", "d"],["1", "2", "3", "4"]].each { |x,y| puts x; puts y}

Voilà 

PS je ne sais plus si c'est la bonne façon de créer des tableaux 2d en ruby... à  voir donc.

Dernière modification par alexmic (Le 14/11/2007, à 19:28)


OMG Lawl pwnd rofl... Plaît-il?

Hors ligne

#5 Le 20/11/2007, à 21:59

mickro

Re : [resolu] [ruby] utilisation de each

Salut,

merci, vous avez tous raison y'a pas de doute même si ce n'est pas ce que je voulais.

Ca m'a permis de me dire que je n'étais pas dans la bonne direction. J'ai donc abandonné mon tableau.

Maintenant, lit chaque couple x, y à  l'aide de : x = mon_tableau_de_valeurs.first; y = mon_tableau_de_valeurs.first

Mes explications ne doivent pas être très compréhensibles mais je m'en suis sorti smile Merci donc.


__mickro__

Hors ligne