ruby

特異メソッド

Integerの+を書き換えようとしたが、挙動が変化しない。たぶんパフォーマンスの改善のためにIntegerの+は上書きできないようにしているのかなと思うけど、例外とか飛ばないのか〜〜?? >> class Array >> def +(x) >> 0 >> end >> end => nil >> [] + 1 => …

Rubyの名前解決は自分の入っているモジュールの兄弟をチェックしない

module Foo quux = 1 class Bar def baz print quux end end p Bar.new.baz # undefined local variable or method `quux' end quuxをdefしても同じ。クラスのメソッド内で修飾なしで使われた名前はまずローカル変数かどうかをチェックして、それから自分の…