BasicObject是Ruby 1.9中引入的,它是Object的父类(因此BasicObject
是Ruby中所有类的父类).
BasicObject
本身几乎没有任何方法:
::new #! #!= #== #__id__ #__send__ #equal? #instance_eval #instance_exec
BasicObject可用于创建独立于
BasicObject不包括内核(用于puts等方法)和
内核模块中混合了Object个,构成了内置内核
如果你不需要Object
的方法,你可以使用BasicObject
作为你的对象的父对象,否则你会取消它们的定义:
# when you inherit Object
class Tracer
instance_methods.each do |m|
next if [:__id__, :__send__].include? m
undef_method m
end
# some logic
end
# when you inherit BasicObject
class Tracer < BasicObject
# some logic
end