-3
我知道在Ruby中,for循環是一個表達式,因此它有一個可以賦給變量的值。例如Ruby中for循環的返回值
x = for i in 0..3 do
end
套x
到0..3
- 的範圍在其上循環迭代。
for循環的返回值是否總是上面的範圍,或者它可以根據循環的主體而不同?
我知道在Ruby中,for循環是一個表達式,因此它有一個可以賦給變量的值。例如Ruby中for循環的返回值
x = for i in 0..3 do
end
套x
到0..3
- 的範圍在其上循環迭代。
for循環的返回值是否總是上面的範圍,或者它可以根據循環的主體而不同?
for
循環返回的內容取決於您正在循環的枚舉器的實現方式。例如,我們來實現我們自己的枚舉器。
chipmunks = Enumerator.new { |c|
c << "Alvin"
c << "Simon"
c << "Theodore"
"Dave"
}
請注意,Enumerator中的最後一項是字符串「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](http://www.tutorialspoint.com/ruby/ruby_loops.htm),並且只是看到您得到了什麼? –
Ruby提供了一個非常好的交互式shell('irb')來讓你探索語言。爲什麼不自己嘗試一下? – Aetherus
看來,如果body包含一個'break',循環的值是'nil'。這是循環的唯一其他可能值嗎?我不知道如何找出答案。這種事情記錄在任何地方嗎? – user200783