From: "U.Nakamura" Date: 2005-09-26T17:47:29+09:00 Subject: [ruby-list:41181] Re: Errnoは例外じゃないのですね こんにちは、なかむら(う)です。 In message "[ruby-list:41180] Re: Errnoは例外じゃないのですね" on Sep.26,2005 17:29:11, wrote: | そうなんですか。Errnoっていうクラス(あれば)のインスタンスは例外にしかな | りえないと思うのですが.... | | a.kind_of? Errno #=> true | | が成立した場合、普通に考えて Errno < Exception であると思ってしまう私の | 感性がおかしいんでしょうか。 卜部さんの感性に関してはなんとも答えかねるんですが、include されている module に関してはtrueを返さない kind_of? モドキが あったら嬉しいことがあったりしないだろうか、と思いつきました。 object.c からちょっと拝借すると、現在、kind_of? は * module M; end * class A * include M * end * class B < A; end * class C < B; end * b = B.new * b.instance_of? A #=> false * b.instance_of? B #=> true * b.instance_of? C #=> false * b.instance_of? M #=> false * b.kind_of? A #=> true * b.kind_of? B #=> true * b.kind_of? C #=> false * b.kind_of? M #=> true という挙動を示すわけですが、ここで、 b.xxxx? A #=> true b.xxxx? B #=> true b.xxxx? C #=> false b.xxxx? M #=> false なるメソッド xxxx? を作ろう、ということです。 で、名前を考えるのが難しいので、既存の is_a? をこのような挙動 に変えるというのはどうでしょうか。叫ぶ人多数かなあ。 単なる思いつきなのであまり深く考察してませんが、とりあえずア イデアだけ出してみたってことで。 それでは。 -- U.Nakamura