148 votes

Ruby : Comment itérer sur une plage, mais par incréments de set ?

Donc je suis une itération sur une plage comme suit :

Mais ce que je voudrais faire est de parcourir par dizaines.

Alors au lieu de plus en plus par 1, le prochain serait en fait 10, puis 20, 30, etc.

245voto

Berin Loritsch Points 3863

Pour l’API complète, consultez http://ruby-doc.org/core/classes/Range.html#M000695 .

Fondamentalement, vous utilisez le `` méthode. Par exemple :

11voto

Arup Rakshit Points 50675

Vous pouvez utiliser `` .

5voto

Jani Points 9200
rng.step(n=1) {| obj | block } => rng

Itère sur rng, en passant chaque nième élément de la bloquer. Si la plage contient des nombres ou des chaînes de caractères, l'ordre naturel est utilisé. Autrement étape invoque succ pour itérer sur les éléments de la gamme. Le code suivant utilise la classe Xs, qui est défini dans la classe au niveau de la documentation.

range = Xs.new(1)..Xs.new(10)
range.step(2) {|x| puts x}
range.step(3) {|x| puts x}

produit:

1 x
3 xxx
5 xxxxx
7 xxxxxxx
9 xxxxxxxxx
1 x
4 xxxx
7 xxxxxxx
10 xxxxxxxxxx

Référence: http://ruby-doc.org/core/classes/Range.html

......

5voto

justsomeguy Points 21

Voici un autre, peut-être plus familier-à la recherche Comment faire :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X