我正在阅读一篇谈论有接收器的方法的文档。什么是接收器?
答案 0 :(得分:20)
在Ruby(以及从SmallTalk中获取灵感的其他语言)中,对象被视为发送和接收“消息”。
在Ruby中,Object是一切的基类,有一个发送方法:Object.send例如:
class Klass
def hello
"Hello!"
end
end
k = Klass.new
k.send :hello #=> "Hello"
k.hello #=> "Hello"
在这两种情况下,k都是'hello'消息的接收器。
答案 1 :(得分:6)
之前的对象。
考虑将方法x.y称为“将指令y发送到对象x”。
这是一种小巧的思维方式,当您获得Ruby的一些更高级的功能时,它将为您提供良好的服务。
答案 2 :(得分:6)
在最初的Smalltalk术语中,“对象”的方法被称为对象的消息(即,您没有在对象foo上调用方法,您向对象foo发送了消息)。所以foo.blah正在发送“blah”消息,“foo”对象正在接收该消息; “foo”是“blah”的接收者。