From: Yukihiro Matsumoto Date: 2008-01-30T01:11:09+09:00 Subject: [ruby-dev:33512] Re: HashからStructを作る まつもと ゆきひろです In message "Re: [ruby-dev:33508] Re: HashからStructを作る" on Tue, 29 Jan 2008 23:46:40 +0900, rubikitch@ruby-lang.org writes: |やっぱり st.a のようにアクセサでアクセスできることです。 |アクセサの方がオブジェクト指向している感じだし、 |メンバ名の打ち間違いをしようものならエラーを投げてくれるので使う方としては |とても嬉しいです。 ふうむ。[ruby-dev:33509]のコードも見てみましたが、やはり引数 パターンによって戻り値が極端に違うのはあまり望ましくないよう な気がしますので、Struct.newの拡張は止めておきませんか。 Struct.for_hashについては、正直あまり名前が好みじゃないんで すよねえ。 |> Struct.new(:a, :b).new(:a => 1, :b => 2) | |こっちもいいですね。 一方、こっちですが、これはこれで意味があるとは思いますし、 Struct.newの拡張よりは好みなんですが、[ruby-dev:33455]でも書 いたように Foo = Struct.new(:f) Foo.new(:f => 42) とした時に、fというメンバは{:f=>42}というハッシュに初期化さ れるか、42という整数に初期化されるか曖昧になるという欠点があ ります。まあ、1要素の構造体は滅多にないでしょうからあまり問 題にならないかもしれませんが。 まつもと ゆきひろ /:|)