From: Shin-ichiro Hara Date: 1998-10-09T22:39:35+09:00 Subject: [ruby-list:9953] Re: read(nil) (Re: comments on manual) 原です。 > ふなばです。 > > >||それともう一つ考えられる仕様はですね。fh = open("foo") として > >||foo が 0 バイトのファイルだった時に、 > >| > >|| fh.read は "" > >|| > >||であるべきではないかという気がするんですが、どうでしょう。 > >| > >|ふむむ.これも納得はできますね.そうしましょうか. > > > >その様に変えて困る人はほとんどいないのではないかと思うので、 > >そうしてしまいましょう。 > > > >#今まで何度か data = fh.read || "" と書いたことがあります。 > >#ruby プログラミングの経験豊富な私は。(^^; > > 経験豊富じゃないけど、僕も read || '' をよくつかってきました。初めのう あ、やっぱり。(いえ、私が経験豊富というのは冗談ですが。) > ちは結構抵抗があったんだけど、もう慣れきっているんで、いざ変わるとなる > と、これまた抵抗があるかな :-) しかし read || '' がという古いコードが誤動作する様になるわけでは ないのでいいのでは?それに引数なしの read の内部は def _read s = '' while t = read(BUFF_SIZE) s.concat t end s end というしくみだと考えれば、0 バイトのファイルに対して '' を返すのは 自然でしょう。 > 僕は大して大きなファイルをあつかうこともないので、一気読みを多用してい > ます。大抵はチマチマ読んでるより速いし、書くのもラクなんでいいんですが、 私もローカルなファイルに対しては、一気読みしかつかわないんですが、 Socket なんかだと、途中で経過の表示や内容のチェックを入れるために 少しずつ読まざるをえなかったりします。 > ある程度大きくなると、つらくなりそうですよね。一体、どのあたりまで期待 > してよいものやら、哲学がないので悩んでしまいます。悩まなくて済むように > なるといいなあ。 書込みですか、、考えたことないなあ。ruby か C ライブラリがうまいことやって くれるんじゃないかな。(^^;