Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Rangeもstepで飛ばし飛ばし実行できる

RangeもNumericのようにstepで飛ばし飛ばし実行できます。
eachで回してブロック内部でif判定しなくても良いんです。
最大値は範囲で指定しているので不要です。

 (:a..:z).step(2){|i| p i}
#>> :a
#>> :c
#>> ...
#>> :u
#>> :w
#>> :y

ひっくり返したい場合は配列にするなり文字列にするなりしてからreverseです

 (:a..:z).step(2).to_a.reverse
#>> [:y, :w, :u, :s, :q, :o, :m, :k, :i, :g, :e, :c, :a]

参考もと