From: Kanda -mu_star- Daisuke Date: 1998-07-29T17:25:16+09:00 Subject: [ruby-list:8957] Re: nil + 1, or Integer.to_i かんだです。 > まつもと ゆきひろです > > In message "[ruby-list:8953] Re: nil + 1, or Integer.to_i" > on 98/07/29, Kanda -mu_star- Daisuke writes: > > | かんだです。 > > |> これは間違いです.正確には「全てのクラスのスーパークラス」で > |> す(KernelもNilClassも除かない).なんでこんなことになったかっ > |> ていうと,昔はKernelはクラスで,NilClassはKernelのサブクラス > |> だったからです.書き直すのを忘れてました. > | 上で、「Kernel も除かない」ということは、Kernel < Object なわけですか? > > あ,だから,「昔はObjectのスーパークラス」だったんだけど,今 > は単なるモジュールで,そもそもクラスではないんですね.「除か > ない」っていうとKernelがクラスみたいに聞こえましたか? 「Object は Nil と Kernel を除いた全てのクラスのスーパークラス」という 説明に対して、「Kernel も NilClass も除かない」と思ったわけです。 つまり、結局 Nil も Kernel も含んでスーパーなのかと。Kernel はモジュール なので普通は Object > Kernel じゃ*ない* とは思いましたが、あえて Nil と 並べて除かない(つまり含む)と書いてあるので例外なのかしらん、と。 > | ただ、「Kenrel#hash は Object#hash として説明している」ということは、 > |宣言は Kernel にあるわけですか? > > そうです.現実にはObjectクラスはメソッド定義をひとつも持たな > いクラスで,定義は全部Kernelに入れてあります.でも,説明は > Object.htmlで行ってるんですね.そっちの方が分かりやすいと思っ > たから. 了解。