Ruby 中的可调用对象、回调与核心功能操作
1. 方法作为对象
在 Ruby 里,我们最常调用的并非 Procs 或 lambdas,而是方法。虽然通常我们是通过向对象发送消息,让对象执行相应方法,但实际上也能把方法当作对象来处理。
1.1 获取方法对象
可以使用 method 方法,并将方法名作为参数(以字符串或符号形式)来获取方法对象。示例如下:
class C
def talk
puts "Method-grabbing test! self is #{self}."
end
end
c = C.new
meth = c.method(:talk)
此时, meth 就是一个绑定的方法对象,它是专门绑定到对象 c 的 talk 方法。若向 meth 发送 call 消息,它会以 c 作为 self 来调用自身:
meth.call
输出结果为:
Method-grabbing test! self is #<C:0x353854>.
1.2 解绑与重新绑定方法
可以将方法从其绑定
超级会员免费看
订阅专栏 解锁全文
349

被折叠的 条评论
为什么被折叠?



