triangular_numbers = Enumerator.new do |yielder|
number = 0
count = 1
loop do
number += count
count += 1
yielder.yield number
end
end
5.times { print triangular_numbers
我想從不同的線程調用一個普通的枚舉器。當我這樣做, enum = (0..1000).to_enum
t1 = Thread.new do
p enum.next
sleep(1)
end
t2 = Thread.new do
p enum.next
sleep(1)
end
t1.join
t2.join
它提出了一個錯誤: Fiber c
我目前正在爲這個簡單的GUI腳本語言創建一個小的小解析器。一切工作正常,但我需要知道,如果有可能做到這一點: Parser.hpp: class Parser
{
public:
enum class LineType;
}
GUIParser.hpp: class GUIParser : public Parser
{
public:
enum class L