インスタンスでシングルトン メソッドを定義できない Ruby クラスがいくつかあります。たとえば、Symbol次のとおりです。
var = :asymbol
def var.hello
"hello"
end
# TypeError: can't define singleton method "hello" for Symbol
これはすべての即時値に対する制限であると考えましたがnil、 、true、およびfalseFixnum(またはのインスタンスではなくBignum) で機能するようです。
var = true
def var.hello
"hello"
end
var.hello #=> "hello"
なぜRubyがオブジェクトの特定のクラスでシングルトンメソッドを定義できるのに、他のクラスでは定義できないのか理解できません。