[解決済み】Rubyの "for "と "each "について
2022-04-10 20:29:49
質問
Rubyのループについてちょっと質問です。この2つの方法はコレクションを反復処理する際に違いがあるのでしょうか?
# way 1
@collection.each do |item|
# do whatever
end
# way 2
for item in @collection
# do whatever
end
これらはまったく同じなのか、それとも微妙な違いがあるのか、ちょっと考えてみました。
@collection
がnilの場合)。
どのように解決するのですか?
これだけの違いです。
を各々で使用します。
irb> [1,2,3].each { |x| }
=> [1, 2, 3]
irb> x
NameError: undefined local variable or method `x' for main:Object
from (irb):2
from :0
のためのものです。
irb> for x in [1,2,3]; end
=> [1, 2, 3]
irb> x
=> 3
を使用すると
for
ループが終了した後も、イテレータ変数は生き続けています。しかし
each
ただし、ループの開始前にすでにローカル変数として定義されていた場合は除きます。
それ以外では
for
は単なるシンタックスシュガーで
each
メソッドを使用します。
いつ
@collection
は
nil
の両方のループが例外を投げます。
例外:未定義のローカル変数またはメソッド `@collection' for main:Object
関連
-
[解決済み] ルビーです。そのようなファイルやディレクトリはありません @ rb_sysopen - testfile (Errno::ENOENT)
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] 配列の反復処理に "for...in "を使用するのは、なぜ良くないのでしょうか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Javaでリストを反復処理する方法
-
[解決済み】Rubyで配列を反復処理するための「正しい」方法は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】RVMをアンインストールする方法は?[重複] RVMのアンインストール方法
-
[解決済み】そのようなファイルやディレクトリはありません @ rb_sysopen ruby
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのローカル変数が未定義である
-
[解決済み] Rubyのメソッド'to_sym'は何をするのですか?
-
[解決済み] RMagickのインストール。MagickWand.hが見当たりません。
-
[解決済み] Ruby Net::HTTPの実行期限が切れた
-
[解決済み] Rubyで2次元配列の作成と反復処理
-
[解決済み] Rubyでガウス(正規分布)乱数を生成するコード
-
[解決済み] Ruby 1.8.7 ハッシュを文字列に変換する