我想知道如果我能迫使這種情況發生Ruby未綁定方法:是否可以強制綁定到其他類的實例?
class A
def bomb ; "bomb" ; end
end
class B ; end
bomb = A.instance_method(:bomb)
b = B.new
bomb.bind(b)
目前它拋出的錯誤類型錯誤:綁定參數必須是一個
的情況下,我覺得這方面有什麼我能做的非常有限利用這些未綁定的方法,可能性有點限制。在這些情況下(我不只是指冪等函數),它會是對的嗎?一個執行錯誤就足夠了,萬一我會處理A中的變量,而這些變量不在B中複製。我真的很想知道如何強制這個綁定。
一些有趣這是可能的:'Object.instance_method(:to_s)。.bind( 「世界你好」)調用#=>「#<字符串:0x0000000195e1f0> 「'。我不認爲有可能在你的例子中強制綁定。 –
是的,那是因爲String從Object繼承而來,並且可以將超類實例方法綁定到它的子類實例。一個例子:A類; def t; 「一個」 ;結束 ;結束 ; B類 ChuckE
如果'A'本來是一個'模塊',那麼它可能在紅寶石2 –