Tôi hiểu khái niệm về some_instance.send
nhưng tôi đang cố gắng tìm ra lý do tại sao bạn có thể gọi cả hai cách này. Ruby Koans ngụ ý rằng có một số lý do ngoài việc cung cấp nhiều cách khác nhau để làm điều tương tự. Dưới đây là hai ví dụ về cách sử dụng:Ruby gửi vs __send__
class Foo
def bar?
true
end
end
foo = Foo.new
foo.send(:bar?)
foo.__send__(:bar?)
Bất kỳ ai có ý tưởng gì về điều này?
Ngoài ra, [BasicObject] (http://ruby-doc.org/core/BasicObject.html) (được giới thiệu trong Ruby 1.9) chỉ có '__send__', chứ không phải' send'. –
Câu trả lời hay.Thậm chí có thể tốt hơn nếu nó đề cập đến 'public_send', thường thích hợp hơn với' send' anyways. –