From: EGUCHI Osamu Date: 2011-01-08T14:44:11+09:00 Subject: [ruby-dev:42983] Re: 特異メソッドの定義の簡略化 えぐち@エスアンドイーです 2011年1月7日9:37 Yukihiro Matsumoto : > In message "Re: [ruby-dev:42970] Re: 特異メソッドの定義の簡略化" > on Fri, 7 Jan 2011 09:18:41 +0900, hattorihiroaki1@mail.goo.ne.jp writes: > |具体的にはHashでもいいかなと…(せっかく教えていただいたのにすみません) > | > |s = {a: [1,2,3], foo: 5} > |s[:a] > |s[:foo] > | > |## method missing をつかって s.a, s,fooと書けたら最高。Matzさんどうですか? > > そういうのが便利だと思う時もあります。特にJSONから取り出した > Hashとか。でも、Hashのメソッドと衝突した時に混乱が生じません > かね。 > > s = {size: 5} > s.size => 1 or 5? JavaScript が object[”member”] を object.member と記述可能なのは 隣の芝生なんですが、セクシーな文法ですね。 ただ ruby の . 演算子(?) を今更多義化するとそれ自身が 混乱の元になりそうに思えます。 s = {size: 5} s.size # => 1 s->size # => 5 のように hash->key を hash[”key”] の省略記法にできないでしょうか? 文法的には拡張の余地がある(既存の構文との衝突はない)と思います。  えぐち