在Ruby中,“接收者”指的是什么?

时间:2009-05-27 15:59:29

标签: ruby terminology

我正在阅读一篇谈论有接收器的方法的文档。什么是接收器?

3 个答案:

答案 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”的接收者。