Chu*_*ckE 12 ruby instance-methods
我想知道我是否可以强迫这种情况发生
class A
def bomb ; "bomb" ; end
end
class B ; end
bomb = A.instance_method(:bomb)
b = B.new
bomb.bind(b)
Run Code Online (Sandbox Code Playgroud)
目前它抛出错误TypeError:bind参数必须是A的实例
我发现这对于我可以用这些未绑定的方法做的非常有限,可能性有点限制.在这些情况下(我不仅仅指幂等函数)它会有意义吗?并且执行错误就足够了,如果我将处理A中未在B中复制的变量,我真的很想知道如何强制这个绑定.
您无法将一个类的实例与另一个类的方法绑定。除非实例是该类或其子类的对象。
这也是显而易见的,一个类的细节不能转移到另一类的实例。它只能与被授权携带该信息的实例(即该类或其子类的实例)绑定。
因此,Ruby 还通过不将特定类的方法绑定到另一个类的实例来维护封装。
| 归档时间: |
|
| 查看次数: |
2474 次 |
| 最近记录: |