Estoy leyendo un documento que habla sobre un método que tiene un receptor. ¿Qué es un receptor?En Ruby, ¿a qué se refiere el "receptor"?
Respuesta
En Ruby (y en otros idiomas que se inspiran en SmallTalk) se considera que los objetos envían y reciben 'mensajes'.
En Ruby, objeto, la clase base de todo, tiene un método de envío: Object.send Por ejemplo:
class Klass
def hello
"Hello!"
end
end
k = Klass.new
k.send :hello #=> "Hello"
k.hello #=> "Hello"
En ambos de estos casos k es la receptor de la 'hola' mensaje.
¿Es realmente "k.send: hello" una manera sintácticamente válida de llamar a "k.hello" en Ruby? – lorz
Usted dice que k es el receptor. Entonces, ¿por qué decimos "k.send: hola" en lugar de "k.receive: hola"? * Suena * como k es el emisor en lugar del receptor. – lorz
Porque está enviando TO k y no recibe TO k. Esta última opción tiene poco sentido. ;) –
el objeto antes de.
pensar en llamar a un método x.y como diciendo "enviar instrucción y al objeto x".
es la forma de pensar smalltalk, te servirá bien a medida que llegas a algunas de las características más avanzadas de Ruby.
En la terminología original de Smalltalk, los métodos sobre "objetos" se denominaban en cambio mensajes a los objetos (es decir, no se llamaba un método en el objeto foo, se enviaba un mensaje al objeto foo). Entonces foo.blah está enviando el mensaje "bla", que el objeto "foo" está recibiendo; "foo" es el receptor de "bla".
- 1. ¿A qué se refiere `this`?
- 2. ¿A qué se refiere el "día cero"?
- 3. ¿A qué se refiere el "yo" en un @classmethod?
- 4. ¿A qué se refiere el término Clang TOT?
- 5. ¿A qué se refiere el argumento String 'volumeName' de MediaStore.Audio.Playlists.Members.getContentUri?
- 6. En CouchDB muestra, ¿a qué se refiere "esto"?
- 7. ¿A qué se refiere AddressFamily.FireFox en los sockets .NET?
- 8. En archivos WiX, ¿a qué se refiere Name = "SourceDir"?
- 9. En Oracle, ¿a qué se refiere realmente 'Buffer Gets'?
- 10. iPhone - ¿cómo encontrar a qué objeto se refiere?
- 11. La palabra clave vinculante se refiere a qué?
- 12. Android: ¿a qué se refiere este mensaje de advertencia? - (WebCore)
- 13. ¿Por qué se usa Disposición en DataContract aunque el servicio todavía se refiere a ella?
- 14. ¿El método object_id de ruby se refiere a la ubicación de la memoria?
- 15. WebSocket escalabilidad, la radiodifusión se refiere a
- 16. Problema de eclipse: el proyecto se refiere a sí mismo
- 17. En clojure, ¿(= 'a' a) se refiere al 'mismo átomo'?
- 18. ¿A qué se refiere el jQuery $ (this) en este fragmento de código específico?
- 19. ¿A qué se refiere exactamente el término "bucle vacío" en C y C++?
- 20. ¿A qué se refiere el símbolo de dominio al configurar el anuncio publicitario de acción?
- 21. Método de Ruby como `self` que se refiere a la instancia
- 22. Si `self` es siempre el receptor implícito en Ruby, ¿por qué` `self.puts` no funciona?
- 23. ¿Qué significa el código 0x80 cuando se refiere a los controles de teclado
- 24. Se refiere a la propiedad en C#. ¿Reflexión? ¿Genérico? ¿Tipo?
- 25. No se puede registrar el receptor dinámicamente
- 26. En Nodejs, cuando console.log un objeto de solicitud, ¿a qué se refiere [Circular]? Cómo determinar que
- 27. ¿Qué significa a || = en el lenguaje Ruby?
- 28. ¿El "que llama" en Java es el mismo que el "receptor" en Ruby?
- 29. Un typedef que se refiere a sí mismo
- 30. Cómo obtener la tabla una clave externa se refiere a
Me preguntaba si era un término inspirado en el fútbol americano. –
La nueva idea que obtuve de Ruby es que la programación OO es como una especie de mensaje que pasa. – Alex