在Ruby中,你可以执行...
Object.send(:public, *Object.private_instance_methods)
...如同另一个问题的答案中所述。这种方式重新定义了Object类的每个私有实例方法,使它们变成公共的。我的问题是:这是如何工作的?send
应该使用方法名称,但似乎在Object
上没有定义名为public
、private
或protected
的方法(或者至少我的搜索未找到它们)。
> Object.respond_to?(:public)
=> false