2008-07-25から1日間の記事一覧
C = Class.new { def f [1,2,3].each {|x| yield x } end define_method(:g) { [1,2,3].each {|x| yield x } } }
define_methodしたメソッドだと、引数の数が合わなくてもArgumentErrorが出ない。
instance_eval中でbreakすると、変なことになりそうな予感。まあそれはいっか。
1.クラスにメソッドを定義する class Object def f() ... end end Object.instance_eval { define_method(:f) { ... } } 2.オブジェクトのクラスにメソッドを定義する a.class.instance_eval { define_method(:f) { ... } } 3.オブジェクトに特異メソッドを…