[ruby-list:41661] Re: Hashを継承したクラスの利用方法について

From: KURODA Hiraku <hiraku@...>
Date: 2005-12-04 18:00:44 UTC
List: ruby-list #41661
才谷さん、はじめまして。黒田と申します。

どのような状況で必要になった事なのか分からないので、もしかしたらズれた解
答かもしれませんが、Hashを直接拡張してしまうのはいかがでしょうか?

>wHoge = {}
>p wHoge.class # Hash3 になることを期待。

このようにはなりませんが、以下のように

-----test.rb--------
#!/usr/bin/ruby

class Hash
   def test   #Hashに新しいメソッドを追加
      puts 'Hello'
      puts to_s
   end
end

a = {0=>"a", 1=>"b"} #リテラルはHashのオブジェクトを生成
a.test #Hashに追加したメソッドが呼び出せている
--------------------

としてやると

~/tmp$ ./test.rb
Hello
0a1b

となります。

-- 
--------------------------------------------------
 黒田 拓(くろだ ひらく)
    hiraku@hinet.mydns.jp
    http://www.hinet.mydns.jp/~hiraku/
--------------------------------------------------

In This Thread