Tôi muốn biết nếu tôi có thể buộc này xảy raPhương thức Ruby Unbound: Có thể buộc ràng buộc với các thể hiện của các lớp khác không?
class A
def bomb ; "bomb" ; end
end
class B ; end
bomb = A.instance_method(:bomb)
b = B.new
bomb.bind(b)
hiện nó ném TypeError lỗi: đối số ràng buộc phải là một ví dụ của A
Tôi tìm thấy điều này rất hạn chế liên quan đến những gì tôi có thể làm với những phương pháp không liên kết này, các khả năng có một chút hạn chế. Trong những trường hợp như thế này (và tôi không chỉ đề cập đến các chức năng không cần thiết) nó sẽ có ý nghĩa đúng không? Và một lỗi thực hiện sẽ có sufficed, Trong trường hợp tôi sẽ được xử lý các biến từ A mà không được nhân rộng trong B. Tôi thực sự muốn biết làm thế nào để lực lượng này ràng buộc.
Something thú vị mà có thể: 'Object.instance_method (: to_s). .bind ("hello world") gọi # => "# "'. Tôi không nghĩ rằng nó có thể buộc các ràng buộc trong ví dụ của bạn mặc dù. –
Có, đó là vì String kế thừa từ Object, và bạn có thể ràng buộc các method kiểu superclass với các cá thể lớp con của nó. Một ví dụ: lớp A; def t; "A"; kết thúc ; kết thúc ; lớp B ChuckE
nếu 'A' sẽ là một 'mô-đun', thì có thể trong ruby 2 –