lunes, 11 de febrero de 2013

Programas y métodos


¿Aún sigues ahí?

A estas alturas me dirás “¿Y esto es todo?. ¿ Para esto me hiciste instalar el Ruby ese de los @@##@||@@##? ¿Para tener una ‘calculadora orientada a objetos’”. Bueno, eso si el capítulo anterior no te hizo abandonarme.

Créeme.  A partir de aquí, la cosa se va a volver más interesante.

Ficheros con contenido Ruby

Lo primero a saber es que puedes crear un fichero con varias instrucciones en Ruby y ejecutarlo. Sí, exactamente lo que estás pensando: eso es un programa en Ruby.

Créate un documento llamado “prueba1.rb” (“rb” es la extensión que suele darse a los ficheros con contenido Ruby) y escribe en él lo siguiente

# Muestra un mensaje de saludo al mundo

mensaje = "Hola Mundo"

print mensaje + "\n"


Y guárdalo en el directorio que quieras (y puedas). Si usas Windows, puedes hacerlo con el Bloc de Notas que viene “de serie” pero, personalmente, no te lo recomiendo. Mucho mejor el Notepad++. Para Linux, a mí me encanta Kate aunque uno se las puede arreglar con cosas más sencillitas como el Gedit.

¿Hecho?  Pues ábrete un intérprete de comandos (si es en Windows, recuerda que es posible que tengas que usar el acceso que indica que soporta Ruby), navega hasta el directorio en que guardaste el fichero y escribe: “ruby prueba1.rb”



¿Qué se puede deducir de todo esto? Para empezar, puede observarse que la primera línea comienza por una almohadilla “#”. Cuando Ruby encuentra un “#”, siempre que no forme parte de una cadena, ignora todo lo que queda de línea. Buena cosa para poner comentarios.

Otra nota interesante es que para concatenar dos cadenas se usa el signo más “+”, de modo que en

print mensaje + "\n"

se añade al mensaje el carácter de salto de línea, "\n". Eso de  \n se denomina secuencia de escape y hay muchas para representar esos caracteres que tan raros y difíciles son de representar como el salto de línea, el tabulador y similares. Si quieres ponerte al día en este tema, puedes echar un vistazo a:

http://en.wikibooks.org/wiki/Ruby_Programming/Strings#Escape_sequences

O a:

http://docs.ruby-doc.com/docs/ProgrammingRuby/html/language.html#UD

Buen sitio, este de http://www.ruby-doc.com. Si es que quieres  documentarte sobre Ruby, claro, que para otras cosas posiblemente no sirva.

Métodos normales y otros más raritos


La clase String tiene muchos métodos. Dos de ellos son “upcase” y “downcase” y sirven para pasar toda la cadena a mayúsculas y minúsculas, respectivamente. Puedes probarlos usando irb:


Ni upcase ni downcase necesitan argumento alguno. Otros métodos sí los precisan.

Como “include?” que nos dice si una cadena contiene o no a otra. ¿Y cómo le paso el parámetro?

Hasta aquí hemos visto que para invocar un método sobre un objeto se escribe primero el objeto, después un punto “.” y después el nombre del método. Pues bien, si el método requiere argumentos, estos irán a continuación.

Y entre argumento y argumento debe haber una coma “,”.

La lista de argumentos pueden o no ir encerrada entre paréntesis. Con esto en mente, pongamos algunos ejemplos de uso de include?:




Mi consejo: utiliza siempre los paréntesis, salvo que tengas alguna razón fundada para no hacerlo. Hay veces en que si no los pones le cambias el significado a la instrucción o creas expresiones incorrectas. Por ejemplo, la clase String tiene un método llamado “insert” que sirve para insertar una cadena dentro de otra en una posición dada:



Observa que las posiciones se comienzan a contar a partir de cero. De modo que la posición 1 se corresponde con el segundo carácter.

Pues bien, algunas cosas pueden o no funcionar dependiendo de si pones bien los paréntesis o no:



Algunos métodos, los que se corresponden con los operadores típicos, pueden ser invocados de una forma distinta. Por ejemplo, para los números Fixnum, la suma es un método cuyo nombre es “+”.  Así, se pueden sumar dos números con expresiones extrañas como (2) .+ (1)



El “ .+” sirve para aplicar el método “+” al objeto devuelto por la expresión ”(2)” y “1” sería el parámetro pasado al método. Claro que resulta mucho más natural hacerlo de la forma tradicional:




O, al menos, a mí así me lo parece. Creo que porque estoy chapado a la antigua.

No hay comentarios:

Publicar un comentario