发送类似对象作为参数的实例的方法?
method to an instance sending a similar object as a parameter?
我需要向一个实例发送一个方法,在这个方法中,接收方实例必须将 self
与相同 class 的另一个实例进行比较,稍后作为参数传递。
更清楚:class Handler
有一个名为 define_method (param)
的方法,它为实例 inst
定义了一个新方法(inst
将是define_method
) 的参数具有 class X
。因此,从现在开始 inst
能够将自己与另一个 X
实例进行比较,只需调用该方法(实例比较的方式现在并不重要)。
inst.compare(anotherInst)
如何实现 define_changes(inst)
知道实例可以是 Handler
不知道的任何对象?
不是很明白你要做什么,但是你可以这样给一个实例化的对象添加方法:
irb(main):135:0> s = 'foobar'
=> "foobar"
irb(main):136:0> s.define_singleton_method(:foobar?) { self == 'foobar' }
=> :foobar?
irb(main):137:0> s.foobar?
=> true
但是您的功能描述听起来有点棘手。也许你需要改变你的方法
我需要向一个实例发送一个方法,在这个方法中,接收方实例必须将 self
与相同 class 的另一个实例进行比较,稍后作为参数传递。
更清楚:class Handler
有一个名为 define_method (param)
的方法,它为实例 inst
定义了一个新方法(inst
将是define_method
) 的参数具有 class X
。因此,从现在开始 inst
能够将自己与另一个 X
实例进行比较,只需调用该方法(实例比较的方式现在并不重要)。
inst.compare(anotherInst)
如何实现 define_changes(inst)
知道实例可以是 Handler
不知道的任何对象?
不是很明白你要做什么,但是你可以这样给一个实例化的对象添加方法:
irb(main):135:0> s = 'foobar'
=> "foobar"
irb(main):136:0> s.define_singleton_method(:foobar?) { self == 'foobar' }
=> :foobar?
irb(main):137:0> s.foobar?
=> true
但是您的功能描述听起来有点棘手。也许你需要改变你的方法