我正在尝试学习一些红宝石。想象一下,我正在循环并执行一个长时间运行的过程,在这个过程中,我想获得一个微调器,只要有必要。
所以我可以这样做:
a=['|','/','-','\\']
aNow=0
# ... skip setup a big loop
print a[aNow]
aNow += 1
aNow = 0 if aNow == a.length
# ... do next step of process
print "\b"
但我认为这样做会更清洁:
def spinChar
a=['|','/','-','\\']
a.cycle{|x| yield x}
end
# ... skip setup a big loop
print spinChar
# ... do next step of process
print "\b"
当然 spinChar 调用需要一个块。如果我给它一个块,它会无限期地挂起。
我怎样才能得到这个块的下一个产量?