gpt4 book ai didi

Ruby 未绑定(bind)方法 : Is it possible to force bind to instances of other classes?

转载 作者:数据小太阳 更新时间:2023-10-29 06:41:57 24 4
gpt4 key购买 nike

我想知道我是否可以强制它发生

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

我发现这对我可以使用这些未绑定(bind)的方法所做的事情非常有限,可能性有点有限。在这样的情况下(而且我不仅仅指幂等函数)它会有意义吗?一个执行错误就足够了,以防我处理 A 中未在 B 中复制的变量。我真的很想知道如何强制执行此绑定(bind)。

最佳答案

您不能将一个类的实例与另一个类的方法绑定(bind)。除非实例是此类或其子类的对象。

这也是显而易见的,一个类的细节不能转移到另一个类的实例。它只能与被授权携带该信息的实例绑定(bind),即该类或其子类的实例。

因此,ruby 还通过不将特定类的方法绑定(bind)到另一个类的实例来保持封装。

关于Ruby 未绑定(bind)方法 : Is it possible to force bind to instances of other classes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13234284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com