-3
Rubyでは、forループは式であるため、変数に代入できる値があることを理解しています。例えばRubyのforループの戻り値
x = for i in 0..3 do
end
セット0..3
からx
- ループ反復オーバーレンジ。
forループの戻り値は常に上記の範囲ですか、またはループの本体によって異なることがありますか?
Rubyでは、forループは式であるため、変数に代入できる値があることを理解しています。例えばRubyのforループの戻り値
x = for i in 0..3 do
end
セット0..3
からx
- ループ反復オーバーレンジ。
forループの戻り値は常に上記の範囲ですか、またはループの本体によって異なることがありますか?
ループは、ループする列挙子がどのように実装されているかによって異なります。ループはfor
によって返されます。たとえば、独自の列挙子を実装しましょう。
chipmunks = Enumerator.new { |c|
c << "Alvin"
c << "Simon"
c << "Theodore"
"Dave"
}
最後に、列挙子の最後の文字列が "Dave"という文字列であることに注意してください。今度は.each
ループでこれを使用しましょう。
result = chipmunk.each do |chipmunk|
puts chipmunk
end
#=> Alvin
#=> Simon
#=> Theodore
puts result
#=> Dave
私の推測では、Range
はその列挙子が自分自身を返すように実装されていることです。これにより、メソッドを連鎖させることができます。
(1..100).each { |n| something(n) }.each {|y| something_else(y) }
[this one](http://www.tutorialspot.com/ruby/ruby_loops.htm)などの基本的なチュートリアルを試してみましたか? –
Rubyは、言語を探検するための非常に良い対話型シェル( 'irb')を提供しています。なぜ自分でそれを試してみませんか? – Aetherus
ボディに 'break'が含まれていると、ループの値は' nil'になります。それがループの他の可能な値ですか?私は見つける方法を知らない。この種のことはどこに文書化されていますか? – user200783