[#7300] resolver を呼ばない UDPsocket#recvfrom — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...>

あんまり ruby-dev な話でも無いのですが、ちょっとした機能拡張の提案なので、

12 messages 1999/07/12
[#7321] Re: resolver を呼ばない UDPsocket#recvfrom — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1999/07/15

From: Toshihiko SHIMOKAWA / 下川俊彦 <toshi@csce.kyushu-u.ac.jp>

[#7313] Ruby 1.3.5 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.5 is out, check out:

59 messages 1999/07/15
[#7318] Re: Ruby 1.3.5 — WATANABE Hirofumi <watanabe@...> 1999/07/15

わたなべです.

[#7326] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/15

青山です。

[#7331] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/16

まつもと ゆきひろです

[#7340] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/16

青山です。

[#7368] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/19

まつもと ゆきひろです

[#7373] Re: Ruby 1.3.5 — Shin-ichiro Hara <sinara@...> 1999/07/19

原です。

[#7374] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/19

まつもと ゆきひろです

[#7382] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/19

青山です。

[#7386] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/21

まつもと ゆきひろです

[#7388] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/21

青山です。

[#7387] [PATCH]extconf.rb, tcltklib.c, and rubytest.rb for NetBSD — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp>

早坂@会津大学です。

10 messages 1999/07/21

[#7466] [PATCH] for djgpp — WATANABE Hirofumi <watanabe@...>

わたなべです.

21 messages 1999/07/29
[#7467] Re: [PATCH] for djgpp — Katsuyuki Komatsu <komatsu@...> 1999/07/29

小松です。

[ruby-dev:7363] Re: Ruby 1.3.5

From: Shin-ichiro HARA <sinara@...>
Date: 1999-07-18 15:30:08 UTC
List: ruby-dev #7363
原です。

> 青山です。

> そうなんですよね。引数無し read については、全く別のメソッドとみなして
> ドキュメントの方を変更するという事でも良いと思います。
> 
> >        read [length]
> >               lengthバイト読み込んで,その文字列を返します. lengthが省略
> >               された時には,EOFまでの 全てのデータを読み込みます.
> >               EOFでnilを返します.

ああ、ドキュメントはこう書かれていたのですか。なるほどこれは誤解を
招きますね。多分、修正し忘れだと思います。

>         read [length]
>                最大lengthバイト読み込んで,その文字列を返します.
>                EOF(1バイトも読み込めなかった場合)でnilを返します.
>                lengthが省略された時には,EOFまでの全てのデータを読み込みま
す.
>                EOF(1バイトも読み込めなかった場合)で""を返します.

これでいいのだと思います。

> > ピンと来ないのですが、「EOF に達せず、かつ文字列は返ってこない場合」という
> > 場合は考えなくて良いのでは?そんな時ってあるのかな。
> 
> ファイルポインタの位置=ファイルサイズでない場合の read(0) がそれにな
> るかと。
> 
> $ ruby -e 'io = open("2"); p io.stat.size; p io.read(0)'
> 2
> nil  # これが「EOFでnilを返します.」に反するわけです.

ああ、これが現状なんですね!これを 2, "" と返すべきだというのが (3) 案だった
のでしょうか?そうだとすればこれは納得できます。read(0) については

(a) 常に nil を返す
(b) EOF で nil を返す。そうでなければ "" を返す
(c) 常に "" を返す
(d) パラメータが範囲外だとして例外をあげる

というのが考えられるけれども、現状は (a) なんですね。私は正のバイト数を
読むのが read(byte) の本来の仕事であると思うので、read(0) は適当でいい
思います。どれがいいのかなあ。(3) 案とは(b)の事ですか?


In This Thread