Capítulo 20. Variables
Ruby tiene tres clases de variables, una clase de constante y exactamente dos pseudo-variables. Las variables y las constantes no tienen tipo. Aunque las variables sin tipo tienen sus inconvenientes, presentan más ventajas y se adaptan mejor a la filosofía rápido y sencillo de Ruby
En la mayoría de los lenguajes hay que declarar las variables para especificar su tipo, si se pueden modificar (e.g. si son constantes) e indicar su ámbito, ya que no es ningún problema el tipo y como vamos a ver, el resto se obtiene a partir del nombre, en Ruby no se necesita declarar las variables.
El primer carácter de un identificador lo cataloga de un plumazo:
Tabla 20-1. Clases de variables
$ | Variable global |
@ | Variable instancia |
[a-z] ó _ | Variable local |
[A-Z] | Constante |
Las únicas excepciones a lo expuesto en la tabla son las pseudo-variables de Ruby: self, que referencia al objeto que está en ese momento en ejecución y nil que es el valor nulo que toman las variables no inicializadas. Ambos tienen un identificador como de variable local pero self es una variable global que la mantiene el interprete y nil es una constante. Como estas son las únicas excepciones no provocan mucha confusión.
No se debe asignar valores a self y nil principalmente porque un valor de self referencia al objeto de nivel superior:
ruby> self
main
ruby> nil
nil