[#44725] Set[Set[1]]==Set[Set[1]] は偽? — "5.5" <5.5@...>

5.5 です。

22 messages 2008/03/04

[#44782] $stdin.rewind が exec した子プロセスに伝わらない? — SATOH Fumiyasu <fumiyas@...>

さとうふみやす @ OSS テクノロジです。

11 messages 2008/03/17
[#44783] Re: $stdin.rewind が exec した子プロセスに伝わらない? — Kazuhiro NISHIYAMA <zn@...> 2008/03/17

西山和広です。

[ruby-list:44758] Re: open組み込み関数について

From: rubikitch@...
Date: 2008-03-12 01:03:09 UTC
List: ruby-list #44758
From: m-hatake@jaist.ac.jp
Subject: [ruby-list:44757] open組み込み関数について
Date: Wed, 12 Mar 2008 09:56:36 +0900

> open("xxx").each do |line|
>    各行についての処理
> end
> 
> というような書き方も私はします。この場合は、
> ファイルのクローズ処理はされているのでしょうか?

されていません。変数に代入してclosed?してみればクローズされたかどうかがわかります。

(f=open(".emacs")).each do |line|
end
f.closed?                       # => false

--
IO.foreachならば同じように書け、クローズされます。(好みでFile.foreachにしてるけど)

File.foreach(".emacs") do |line|
  puts line
end

行単位に処理する必要性がなければ、ファイルの内容を丸ごと読み込んで処理
するほうが効率的です。

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/

In This Thread