From: Yukihiro Matsumoto Date: 2007-08-20T15:11:16+09:00 Subject: [ruby-dev:31516] Re: Random まつもと ゆきひろです In message "Re: [ruby-dev:31515] Re: Random" on Mon, 20 Aug 2007 14:36:03 +0900, Tanaka Akira writes: |最近、IO に bytes メソッドができていることに気がついたのですが、 |これが IO と Random で違います。 | |Random#bytes は受け取った引数の長さのバイト列を返すものです。 |それに対し、IO#bytes は Enumerator を返します。 |duck typing の都合上、同名で挙動が異なるメソッドはできれば避 |けたほうがいいと思うんですが、どうでしょうか。 出自が違うので違ってもよいような気もします。IOらしい挙動が欲 しければどう考えてもbytesだけでは足りないので、もっとIOらしい ラッパーを書くでしょうし。あえて揃えるというのであれば、 Random#bytesが引数をとらなかったらEnumeratorを返すというAPI でどうでしょうね。 一方、逆にIO#bytesが引数をとったらそのバイト数だけ読み込んで 返すというAPIにするかどうかですが、それはなんか変な気がするの はなぜでしょうか。IO#bytesと引数を揃えるべきIO#linesがすでに 別の引数を持つからかな。 ところで、放置してましたが、このパッチはそろそろ取り込んだ方 がよいのでしょうか。