В Ruby что означает «получатель»? - PullRequest
22 голосов
/ 27 мая 2009

Я читаю документ, в котором говорится о методе с получателем. Что за приемник?

Ответы [ 3 ]

22 голосов
/ 27 мая 2009

В 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'.

7 голосов
/ 27 мая 2009

В исходной терминологии Smalltalk методы для «объектов» вместо этого назывались сообщениями для объектов (т. Е. Вы не вызывали метод для объекта foo, вы отправляли объекту foo сообщение). Таким образом, foo.blah отправляет сообщение «бла», которое получает объект «foo»; "foo" - получатель "бла".

6 голосов
/ 27 мая 2009

объект до.

Думайте о вызове метода x.y как о "отправке инструкции y объекту x".

Это образ мышления, который будет легкомысленным, он будет вам полезен, когда вы перейдете к некоторым более продвинутым функциям Ruby.

...