From: Shin-ichiro HARA Date: 2002-02-25T19:02:26+09:00 Subject: [ruby-dev:16069] Re: New Struct 原です。 >なひです。 > >class Hash > def method_missing( msg_id, *a, &b ) > self[ msg_id ] || self[ msg_id.id2name ] > end >end > >def foo > return "foo" => 1, :bar => 2 >end こういうのもあるかな。 class Hash def to_struct Struct.new(nil, *keys)[*values] end end foo = {:name => "matz", :age => 104}.to_struct p [foo.name, foo.age] #=> ["matz", 104] >この用途なら原さんが最初に書かれているように、 >クラスを作るよりオブジェクトひとつ作って特異メソッドで >respond_to?を保障するというやり方がよさそうに思います。 >keyをSymbol or Stringに固定してHash#{key}でアクセスできる >YAHashがあればよい? まあ、[: ] より . の方が [SHIFT] を入れて、打数が 1/6 な のも魅力なんですよねえ。US Keyboard でね。^^;