在Ruby中,我可以将一个方法绑定到一个接收器(示例):
class TEST
def meth
end
end
bound_method = TEST.new.method(:meth)
问题:如何从绑定方法中取回接收器?
可能解决方案,可在以下文档中找到:
/*
* call-seq:
* binding.receiver -> object
*
* Returns the bound receiver of the binding object.
*/
static VALUE
bind_receiver(VALUE bindval)
{
const rb_binding_t *bind;
GetBindingPtr(bindval, bind);
return vm_block_self(&bind->block);
}
1条答案
按热度按时间yizd12fk1#
如何从绑定方法中取回接收器?
如果你看一下the documentation of
Method
,你会发现Method#receiver
方法,它返回Method
对象的绑定接收器:返回方法对象的绑定接收器。