Trong Ruby, sự hiểu biết của tôi là self
là bộ nhận ngụ ý cho bất kỳ cuộc gọi phương thức trần nào. Tuy nhiên:Nếu `self` luôn là bộ nhận ngụ ý trong Ruby, tại sao` self.puts` không hoạt động?
~: irb
>> puts "foo"
foo
=> nil
>> self.puts "foo"
NoMethodError: private method `puts' called for main:Object
Điều gì giải thích điều này?
Trong trường hợp đó là bất kỳ sự giúp đỡ:
>> method(:puts).owner
=> Kernel
thử 'self.send: puts," foo "'. Bạn có thể nhận được xung quanh phương pháp riêng với gửi. – DGM