В Ruby что означает «получатель»?

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

 Alex15 июн. 2012 г., 10:13
Новая идея, которую я получил от ruby, заключается в том, что ОО-программирование похоже на передачу сообщений.
 Andrew Grimm31 мар. 2010 г., 08:57
Раньше я задавался вопросом, был ли это термин, вдохновленный американским футболом.

Ответы на вопрос(3)

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

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

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

Решение Вопроса

основанных на SmallTalk) объекты воспринимаются как отправка и получение «сообщений».

В Ruby у Object, базового класса всего, есть метод send:Object.send Например:

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

В обоих этих случаях k являетсяприемник «привет» сообщения.

 Robert K27 мая 2009 г., 18:25
Потому что вы отправляете TO k, а не получаете TO k. Этот последний вариант имеет мало смысла. ;)
 BKSpurgeon23 сент. 2016 г., 08:36
спасибо - но кто тогда «отправитель»?
 Lin24 авг. 2016 г., 21:25
Мне интересно, потому что в Ruby каждая вещь - это объект, а каждая функция - это какой-то метод. Но с точки зрения метода классаclass Hello; def self.say; puts "hello"; end; end какой приемник при звонкеHello.say? ЯвляетсяHello тоже объект?
 lorz27 мая 2009 г., 18:17
Вы говорите, что k - получатель. Так почему же мы говорим «k.send: привет» вместо «k.receive: привет»? Этозвуки как k является отправителем, а не получателем.
 lorz27 мая 2009 г., 18:11
Является ли k.send: hello синтаксически верным способом вызова k.hello в Ruby?

Ваш ответ на вопрос