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

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

在Ruby(以及从SmallTalk中获取灵感的其他语言)中,对象被认为是发送和接收“消息”。

在Ruby中,Object是一切的基类,有一个send方法: Object.send例如:

class Klass def hello "Hello!" end end k = Klass.new k.send :hello #=> "Hello" k.hello #=> "Hello" 

在这两种情况下,k都是“你好”消息的接收者。

之前的对象。

想到把方法xy称为“将指令y发送到对象x”。

这是一种小巧的思维方式,当您获得Ruby的一些更高级的function时,它将为您提供良好的服务。

在最初的Smalltalk术语中,“对象”上的方法被称为对象的消息(即,您没有在对象foo上调用方法,而是向对象foo发送消息)。 所以foo.blah正在发送“blah”消息,“foo”对象正在接收该消息; “foo”是“blah”的接收者。