メタプログラミングRubyを読んで(2)
読んでたら疲れたので第4章までで知ったこととか。
ObjectはKernelモジュールをincludeしている
なので
def aaa "call aaa(#{self})" end aaa #=> "call aaa(main)" [].aaa #=> "call aaa([])" /aaa/.aaa #=> "call aaa((?-mix:aaa))"
余り使うことはないだろうな。
Class.new Module.new Module.define_method
の3つは変数などのスコープを無視(フラットスコープ)することができる。
詳しくはこちら
biboroku.megaya.net