まつもと ゆきひろです

In message "[ruby-list:6679] Re: call for scripts"
    on 98/02/24, Tadayoshi Funaba <tadf / kt.rim.or.jp> writes:

|>   output = File.open('README', 'w')
|>   begin
|>     ...
|>   ensure
|>     output.close
|>   end
|>
|>で必ずcloseするようにした方がよいという意味だと思います。
|
|この場合の open の例外は別枠で考えたほうがいいんでしょうか?

はい.openで例外が起きるとoutputにまだ値が設定されていないの
で,output.closeがエラーになります.もちろん,

  output.close if output

なんてのでも構わないですけど.

|>  open('README', 'w') { |output|
|>    ...
|>  }
|>
|>のようにopenをイテレータとして呼び出すとclose処理を行ってくれます。
|
|これって便利じゃないですか。マニュアルに載ってましたっけ? 僕の読みかた
|がよくないのかな。勉強になりました。

ええと,すくなくとも新しいのには載せたように思うんですが.
# マニュアル新しくしました.鄭さんの指摘はまだ反映してませんが

                                まつもと ゆきひろ /:|)