viernes, 28 de noviembre de 2008

TODO es un objeto

Veamos una de las características de Ruby. En esta ocasión le toca a:

En Ruby todo es un objeto

Se dice que nunca hay que ser tan categórico, pero Ruby es así. Comparte este paradigma con otros lenguajes como Smalltalk.

En este lenguaje que nos ocupa no existen tipos simples como int, float, unsigned, char, ni otros similares que aparecen en otros lenguajes. Todo es un objeto, pero se trata de un modo tan transparente que no notas diferencia si no experimentaste con ello. De este modo, se pueden hacer cosas como

12.times { puts "Creo que estoy siendo repetitivo"}

El código de ejemplo saca por pantalla la frase "Creo que estoy siendo repetitivo" 12 veces. Puedes fijarte que se está llamando al método times del objeto 12, que es una instancia de la clase Fixnum (la que en otros lenguajes podría llamarse Integer).

Es una manera realmente transparente de usar objetos: parece un tipo simple, está ahí, nadie ha invocado al constructor de Fixnum, pero por debajo es un objeto. Esta solución es una alternativa mejor, a mi ver, que las clases envoltorio de Java.

No hay comentarios: