for文
- シンプルな繰り返し処理に適した記法である
- Rubyでは
.each
メソッドの利用が主流
「Rubyにもfor文はあります。ですが、ほとんどのRubyプログラマはfor文は使いません。筆者も長年Rubyを使っていますが、for文を書いたことは一度もありません。Rubyの場合は(中略)配列自身に対して「繰り返せ」という命令を送ります。ここで登場するのがeachメソッドです。」
出典:伊藤淳一『プロを目指す人のためのRuby入門[改訂2版] 言語仕様からテスト駆動開発・デバッグ技法まで』技術評論社, 2021年12月2日. ISBN: 978-4-297-12437-3
特徴
- 古典的かつ直感的な構文である
- 明示性を重視する反面、Rubyらしさには欠ける
記法
for 変数 in コレクション do
処理内容
end
- コレクション:Range、配列、ハッシュ、Enumerableをincludeしたオブジェクトである
- doは省略可能
実例
for i in 1..5 do
puts i
end
# => 1
# 2
# 3
# 4
# 5
-
i
- ループ内で利用する変数=ループ変数
- コレクションの要素を順次i
に代入し格納する -
コレクション
- 範囲オブジェクト、配列、ハッシュ、Enumerableモジュールなどのオブジェクトのこと -
do
- 省略可能
eachメソッドとの比較
比較項目 | for文 | eachメソッド |
---|---|---|
記法 | for 変数 in コレクション |
コレクション.each do| 変数 | … end |
スコープ | ループ変数が外部スコープにも残る | ブロック内ローカル変数として限定される |
推奨度 | 利用頻度が低く、レガシーな記法である | モダンかつ安全性の高い書き方として広く採用される |
まとめてみて
- レガシーでオールドでオブソリートなら割り切って覚えなくていいかな・・・
- 必要な時があったら、調べて書ければいいレベルかもしれない。