In article <87bs8xkfqr.wl / studly.priv.netlab.jp>, Shugo Maeda <shugo / ruby-lang.org> writes: > たとえば、 > > open(filename) do |f| > text = f.read > end > print text > > みたいなケースでは、 > > text = nil > open(filename) do |f| > text = f.read > end > print text > > と書かないといけないのはちょっといやだなあと思うわけです。 それはいやですね。私は print open(filename) {|f| f.read} と書くことにしていました。(今は File.read ですけど。) むろん、一般に通用する解決策じゃありませんが、ブロックが必ず一回だけ実 行される場合、ブロックの返り値がメソッドの返り値になる場合が多いので、 値を一つ返すぶんにはあまり困りません。 困るケースは、メソッドの返り値がブロックの返り値でない場合か、値をふた つ以上ブロックの外側に返す必要がある場合にでしょうか。個人的には苦に思っ た覚えがありませんが、私に関してそういうケースが十分に少なかったのか、 あるいは私が単に鈍いのかはよくわかりません。 -- [田中 哲][たなか あきら][Tanaka Akira] 「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)