我對Ruby的瞭解是,私有方法不能用明確的接收方調用,即使是self
。在Ruby中調用的私有方法
class Private
private
def private_method(c)
puts '#{c}'
end
end
p = Private.new
p.instance_eval{ private_method("private method called") }
這是如何工作的?我們可以使用instance_eval
來調用私人方法。請解釋
您在這裏看不到明確的接收方,是嗎? –
我很困惑你的問題。你說私人方法只能在沒有明確接收者的情況下被調用。你沒有明確的接收者就調用私有方法。那麼你很驚訝你可以調用一個沒有明確接收者的私有方法? –