2013年5月4日土曜日

メタプログラミングRuby勉強会#1



ちょうど仕事と関連しているのでタイムリーな勉強会。
単に手を動かしたせいかもしれないが、充実した時間を過ごせた。

昨日のメインは第一章だったが、オープンクラス等Rubyっぽさを感じられた。


オブジェクトとクラス

オブジェクト自身がインスタンスメソッドを持つ訳ではない。オブジェクトはクラスのメソッドへの参照を持っているだけ。superclassにはモジュールが見えないがancestorsでは見える。

メソッド呼び出し

メソッドが呼び出されると現在のオブジェクトのクラス内でそのメソッドを探す。なければ親クラスを見る。ancestorsを辿れば分かりやすい。

privateメソッド

Rubyでは親クラスのprivateメソッドを呼び出せる。Javaのprotectedみたいなものか。


次回は動的ディスパッチャやmethod_missing等Rubyの沼に潜っていく。




0 件のコメント:

コメントを投稿