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.オブジェクトに特異メソッドを…