2009-05-27 60 views
19

我正在阅读一篇讨论具有接收器的方法的文档。什么是接收器?在Ruby中,“接收器”是指什么?

+1

我曾经怀疑这是否是一个受美式橄榄球启发的术语。 – 2010-03-31 06:57:39

+0

我从ruby得到的新想法是OO编程就像是一种消息传递。 – Alex 2012-06-15 08:13:49

回答

18

在Ruby(和其它语言的是采取从Smalltalk的灵感)对象被认为是发送和接收的邮件'。

在Ruby,对象,基类一切的,具有发送方法:Object.send例如:

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

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

6

之前的对象。

想到调用方法x.y作为“向对象x发送指令y”。

它的思维方式Smalltalk的,因为你得到的一些Ruby的更先进的功能,将满足你的需要。

6

在原来的Smalltalk术语,关于“对象”方法被代替refered为消息对象(即你没有呼吁对象foo的方法,你发送对象foo的消息)。所以foo.blah发送了“foo”对象正在接收的“blah”消息; “foo”是“blah”的接收者。