From: KOSAKI Motohiro Date: 2010-07-29T19:02:38+09:00 Subject: [ruby-dev:41894] Re: thread.bind(sym, val) { ... } > スレッド変数を一時的に設定するメソッドを加えるのはどうでしょうか。 > > たとえば Thread#bind(sym, val) { ... } として、 > ブロックを呼び出しているあいだ、スレッド変数 sym を > val に設定する、というようなものです。 > > p Thread.current[:a] # nil > Thread.current.bind(:a, 100) { > p Thread.current[:a] # 100 > } > p Thread.current[:a] # nil に戻る > > スレッド変数はこのような使い方が多いので、メソッドがあってもいい > ように思います。 > > なお、bind 以外の名前としては let が思い浮かびます。 > > また、Thread じゃなくて Fiber じゃないか、という話はあるかもしれません。 Fiberがいいなぁ・・・・ それはそれとして、メソッドでやるよりもスレッドローカル変数を宣言する 構文つくったほうがうれしいような気がちょっとだけします。 たかが変数1つのために、インデントが一段深くなるというのがどうにも・・・