まつもと ゆきひろです
In message "[ruby-list:5231] Re: ruby for perl users"
on 97/11/10, Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp> writes:
|原です。
|> |◎ ファイルの扱い方は?
|
|> f = open(filename)
|> begin
|> while line = f.gets
|> print line
|> end
|> ensure
|> f.close
|> end
|>
|> のように例外処理をすることが多いです。
|
|この例外というのも Perl => ruby な人には、疑問の多いところで、
|ruby はやたらに例外を発生させて不便だと誤解されがちです。
という意見ももっともなので1.1b0からはCommon Lispを参考にした
新しいメソッドを定義しました.名付けて
IO.with_open_stream(path[,mode])
これはこう使います.
IO.with_open_stream("file") do |f|
while line = f.gets
print line
end
end
これでensureでのcloseを気にする心配は無くなります.もっとも
こんなメソッド自分で定義しようと思えば
def IO.with_open_stream(path, mode="r")
f = open(path, mode)
begin
yield f
ensure
f.close
end
end
で書けてしまうんですけどね.
まつもと ゆきひろ /:|)