From: Tanaka Akira Date: 2007-07-30T14:51:10+09:00 Subject: [ruby-dev:31316] Re: retryの使い方 In article <46AD7A16.8080509@for.mail-box.ne.jp>, eklerni writes: > ああそのとうりですね、例になってない。それじゃあ事前に(変数名がbigだと決 > まるよりも前に)procオブジェクトを > 作成して、それを用いたい状況だったらどうですか? > > it = proc{|n| p n } > big = 0 > Thread.new{loop{sleep 0.7;big += 1}} > > def foo(n) > sleep(1) > yield n > retry > end > > foo(big,&it) > > クラス化してインスタンス変数を使ったり、proc作成前にbig=0をはさんだりす > ればいけますが、 > そういうのをしたくない状況ってことで:-) たんに it を呼ぶブロックを foo につければいいのでは? it = proc{|n| p n } big = 0 Thread.new{loop{sleep 0.7;big += 1}} def foo while true sleep 1 yield end end foo{it.call(big)} -- [田中 哲][たなか あきら][Tanaka Akira]