我想知道我是否能强制这种情况发生
class A
def bomb ; "bomb" ; end
end
class B ; end
bomb = A.instance_method(:bomb)
b = B.new
bomb.bind(b)
目前它会抛出TypeError: bind argument must be an instance of A的错误。
我认为这非常限制了我对这些未绑定方法所能做的事情,可能性有点受限。在像这样的情况下(我不仅指幂等函数),强制绑定是有意义的吧?如果我正在处理从A中未复制到B中的变量,则执行错误就足够了。我真的很想知道如何强制执行此绑定。
Object.instance_method(:to_s).bind("hello world").call #=> "#<String:0x0000000195e1f0>"
。但我认为在你的例子中强制绑定是不可能的。 - Scott OlsonA
是一个模块,那么在Ruby 2中是可能的。 - Amol Pujari