読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

redoとretry

イテレート中に redo すると、現在のブロックを再実行します。

def foo
  puts "start.."
  3.times {|i| 
    puts "each.. #{i}"
    yield i 
  }
  puts "end.."
end

# redo
count = 0
foo {|i|
  puts "yield.. #{i}"
  redo if i == 1 && (count+=1) < 3
}

実行結果です。

start..
each.. 0
yield.. 0
each.. 1
yield.. 1
yield.. 1
yield.. 1
each.. 2
yield.. 2
end..

retryだと、イテレータが最初から再実行されます。

def foo
  puts "start.."
  3.times {|i| 
    puts "each.. #{i}"
    yield i 
  }
  puts "end.."
end

# retry
count = 0
foo {|i|
  puts "yield.. #{i}"
  retry if i == 1 && (count+=1) < 3
}

実行結果です。

start..
each.. 0
yield.. 0
each.. 1
yield.. 1
each.. 0
yield.. 0
each.. 1
yield.. 1
each.. 0
yield.. 0
each.. 1
yield.. 1
each.. 2
yield.. 2
end..