4
我有產生以下述方式的枚舉的函數:無限枚舉倒帶
def create_example_enumerator(starting_value)
current = starting_value
e = Enumerator.new do |y|
loop do
current += 1
y << current
end
end
end
當前的行爲是非常簡單的。我想e.rewind
將枚舉數重置爲它的起始值。 有沒有一個很好的方式來做到這一點,同時仍然使用無限枚舉器?
酷,謝謝。那很簡單。 – wrhall
你可能想把解決方案放在文字上:「變量必須在枚舉器塊內部定義」,因爲你也爲'yield'更改'<<'似乎就是問題所在。任何想法爲什麼是必要的? – tokland
我認爲這是有道理的 - 倒帶應該從塊的開始重新開始。如果您沒有在塊內定義初始編號,那麼當您從塊的起始處重新開始時,您的編號不會改變。 – wrhall