From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1998-07-28T02:00:49+09:00 Subject: [ruby-list:8906] Re: nil + 1, or Integer.to_i けいじゅ@日本ラショナルソフトウェアです. 何かめちゃくちゃにいわれていますね(^^;;; In [ruby-list :8903 ] the message: "[ruby-list:8903] Re: nil + 1, or Integer.to_i ", on Jul/27 21:41(JST) Sinichiro Dezawa writes: >matz> 良く見るとto_i,to_fともにNumeric.htmlに記述があります.これ >matz> は実装(Numericではなく個々の具象クラスで定義されている)とド >matz> キュメントの乖離にmindex.htmlが対応していないせいでしょうか. いや. 対応している気にはなっていたんですが.... 今のメソッドの参照のアルゴリズムは: そのクラスから使えるメソッド = そのクラスで実装されているメソッド + そのクラスがインクルードしているモジュールで実装されているメソッド + その直上のクラスから使えるメソッド となっていました. Fixnum#to_iの場合, Numericからto_iが使えるメソッドに なっていないので参照できなかったんですね. ちなみに, 今のままだと, Numericにはto_iが存在しません. で, 今度は そのクラスから使えるメソッド = そのクラスで実装されているメソッド そのクラスでマニュアルがあるメソッド + そのクラスがインクルードしているモジュールで実装されているメソッド + (その直上のクラスから使えるメソッド + さらに上のクラスから使えるメソッド + ... メソッドが定義されているクラスにあたるまで繰り返す) としました. 最後の部分が面倒ですが, どうもこうしなくてはならないようで す. Fixnum < Integer < Numeric ですが, to_iが定義されているのはFixnumであってIntegerでは定義されてい ません. ので, Integer#to_iが定義されているかどうかでは判断できないです ので... これで, さっきの問題は解決するのですが, これはこれできみょうな問題があ ります. 今回の仕様にすると: Numeric -> Numeric#to_i Integer -> 存在しない Fixnum -> Fixnum#to_i < Numetic#to_i って感じになります. NumericとIntegerが何かアンバランスなんですよね... だからといって, NumericのNumeric#to_iを削除したり, Integerに Integer#to_iを追加するのも変だし.... >Integer が Numeric を継承してるのだから、 > >matz> いちおう,Integer.html,Float.htmlに書き足しておきます. > >処理が違うのでない限り、これらに書き足さねばならぬのは >mindex.html(の元)を作った趣旨からは面白くないな。 ちなみに, MethodIndex.htmlも Fixnum#to_iはmindex.htmlと同じになってい ますね. Float#to_iはうまくいっているので, そのクラスから使えるメソッド = そのクラスで実装されているメソッド そのクラスでマニュアルがあるメソッド + そのクラスがインクルードしているモジュールで実装されているメソッド + その直上のクラスから使えるメソッド 見たいな定義になっているんじゃないでしょうか? In [ruby-list :8902 ] the message: "[ruby-list:8902] Re: nil + 1, or Integer.to_i ", on Jul/27 21:36(JST) Sinichiro Dezawa writes: >出沢です >matz> いですね.出沢さんの作ったものと違ってソースを参照しないのが >matz> 関係してるんでしょうか. >そうなのか、、、、 >あ、そう言えば、私のソース送る時の条件、 >できたらソース見せてくれ、どうなったのだろうか、、、、 まだ出来ていないんですもの(^^;;; PS. 新しい, mindex.htmlをincomingに置いておきます. __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---