In Ruby, ist mein Verständnis, dass self
ist der implizite Empfänger für jeden nackten Methodenaufruf. Jedoch:Wenn `self` in Ruby immer der implizierte Empfänger ist, warum funktionieren` self.puts` nicht?
~: irb
>> puts "foo"
foo
=> nil
>> self.puts "foo"
NoMethodError: private method `puts' called for main:Object
Was erklärt dies?
Im Fall ist es keine Hilfe:
>> method(:puts).owner
=> Kernel
versuchen Sie 'self.send: puts," foo "'. Mit send können Sie private Methoden umgehen. – DGM