素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

Hash#method_missing

h['hoge']はちょっと長いなと思って、JavaScriptみたいに、キーが単純な場合はh.hogeやh.hoge = :valのようにできるようにしてみた。

class Hash
  def method_missing(name, val=nil)
    if name[-1] == '='
      self[name.to_s[0..-2].to_sym] = val
    else
      self[name]
    end
  end
end

h = {}
h.hoge = 1
p h # => {:hoge=>1}
p h.hoge # => 1

でも、実際使ってみると、そんなに便利じゃない。