けいじゅ@日本ラショナルです. In [ruby-list :03619 ] the message: "[ruby-list:3619] Re: [Request] File.readlines ", on Aug/08 14:45(JST) matz / netlab.co.jp (Yukihiro Matsumoto) writes: >|# でも, なんでIOなんだ?? Fileで良いような... > >多分 > IO.foreach("|ps uax") >なんてこともあり得るからでは? おお. そうか. では, readlinesもIO.readlinesになりますね. って, 下では すでにそうなっていた... >要求をまとめると > > (a) IO.foreachにsep引数を追加したい > (b) IO.readlines(相当)が欲しい > (c) IO.foreachがイテレータとして呼ばれていない時配列を返す > のはどうだろうか > >ですよね. >aはあまり主張されていないようですが,どうします? この辺りのメソッドは機能を合わせた方がいいのでは? と思いますので, あっ た方がいいんじゃないでしょうか? >bはあると便利なのは認めます.無くてはならないと言うほどでは >ないにしても. まあ. それもそうなんですが... >cはforeachという名前はその挙動にふさわしくないように感じます. そうですね. もしやるんだったら, 逆に, IO.readlinesに統合した方が良いと 思いますね. >ということで,a,bについてはもうすこし論を補強して欲しいです IO#readlinesは, stdioなどすでにopenしているものでは当然便利ですが, ま だopenしていないファイルに対しては, 以下のように毎回プログラムしないと 行けないので, それほど便利ではないと思うんですよ. begin file = File.open(..) lines = file.readlines() ensure file.close() end それに, readlinesを使う場合は, fileに対しての操作はreadlines以外実行し ない, つまり, 上記のようなコーディングが大半になると思います. というわけで, すでにopenされているfileに対してのreadlinesと同等の便利 さを得るために, IO#readlinesはいかがでしょう? >し,cに関しては却下する方向で考えています. cはどうしてでしょうか? イテレータになったり配列を返したりするのは好き でない? それとも名前の問題? __ ..........................................石塚 圭樹@日本ラショナル... ----------------------------------->> e-mail: keiju / bc.mbn.or.jp <<---