私はいくつかのルビーを学ぼうとしています。ループして長時間実行するプロセスを実行していると想像してください。このプロセスでは、必要なだけスピナーを取得したいと考えています。
だから私はできる:
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 呼び出しにはブロックが必要です。ブロックすると、無期限にハングアップします。
このブロックの次の利回りを取得するにはどうすればよいですか?