¿Qué tal si queremos decir “Hola” muchas veces sin cansar nuestros dedos con el teclado? ¡Necesitamos definir un método!
La expresión def h
inicia la definición del método. Le dice a Ruby que
estamos definiendo un método, cuyo nombre es h
. La siguiente linea es
el cuerpo del método, la misma expresión que vimos anteriormente: puts
"Hola Mundo"
. Finalmente, la última linea end
la dice a Ruby que
terminamos de definir el método. La respuesta de Ruby => nil
nos
comunica que él sabe que terminamos de definir el método.
Las breves y repetitivas vidas de un método
Ahora intentemos ejecutar ese método algunas veces:
Bien, eso fue fácil. Ejecutar un método en Ruby es tan fácil como sólo mencionar su nombre. Si el método no requiere parámetros para ejecutarse, eso es todo lo que necesitas. Puedes agregar paréntesis vacíos, pero no son necesarios.
¿Y qué tal si queremos saludar sólo a una persona y no a todo el mundo?
Simplemente redefine h
para que tome un nombre como parámetro.
Así que eso funciona… pero tomémonos un segundo para ver más en detalle qué es lo que está sucediendo.
Reservando espacios en un String
¿Qué significa la expresión #{nombre}
? Esa es la forma que tiene Ruby
para insertar algo en un String. La expresión entre las llaves es
transformada en un String (si todavía no lo es) y posteriormente
sustituida en ese punto del String que la contiene. También puedes usar
esto para asegurarte que el nombre comience con mayúscula:
Algunos otros trucos para destacar. Uno es que otra vez estamos llamando
al método sin utilizar los paréntesis. Si lo que quieres hacer es obvio,
los paréntesis son opcionales. El otro truco es el parámetro por defecto
Mundo
. Esto significa “si no se provee un nombre, utiliza el nombre
por defecto "Mundo"
”.
Convirtiéndolo en un Anfitrión
¿Qué hacemos si queremos tener un anfitrión más “en serio”? Uno que recuerde tu nombre, te dé la bienvenida y te trate con respeto. Puedes querer utilizar un objeto para eso. Vamos a crear la clase “Anfitrion”.
La nueva palabra clave aquí es class
. Esto define una nueva clase
llamada Anfitrion y un par de métodos para esa clase. También toma nota
de @nombre
. Esta es una variable de instancia y está disponible para
todos los métodos de la clase. Como puedes ver es utilizada por
decir_hola
y decir_adios
.
¿Así que cómo hacemos para que esta clase Anfitrion nos sea de utilidad? Crea un objeto.