Alcance

El alcance es una propiedad de las variables: se refiere a su visibilidad (aquella región del programa donde la variable puede utilizarse). Los distintos tipos de variables, tienen distintas reglas de alcance. Hablemos de dos tipos de variables: las globales y las locales.

Alcance global y variables globales

Empezarmos con el alcance que menos se usa, pero no por ello menos importante: un alcance global significa que alcanza a todo el programa. Desde cualquier parte del programa, puede usarse la variable. Las variables globales son las que tienen alcance global.

Las variables globales se distinguen porque están precedidas del signo dólar ($). Pueden ser vistas desde cualquier parte del programa, y por tanto pueden ser usadas en cualquier parte: nunca quedan fuera de alcance. Sin embargo, las variables globales son usadas muy poco por los programadores experimentados.

Variables globales por defecto

El intérprete Ruby tiene por defecto un gran número de variables globales iniciadas desde el principio. Son variables que almacenan información útil que puede ser usada en cualquier momento y parte del programa.

Por ejemplo, la variable global $0 contiene el nombre del fichero que Ruby está ejecutando. La variable global $: contiene los directorios en los que Ruby busca cuando se carga un fichero que no existe en el directorio de trabajo. $$ contiene el id (identidad) del proceso que Ruby está ejecutando. Y hay muchas más.

Alcance local

Nota: no te preocupes si no entiendes esto ahora.

Se puede intuir mirando el código dónde empieza y acaba el alcance de las variables locales, basándonos en:

  • El nivel más alto (fuera de todos los bloques de definición) tienen su propio alcance.
  • Cada bloque de definición de una clase o módulo tienen su propio alcance, incluso los bloques anidados.
  • Toda definición de un método (def) tiene su propio alcance.
Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution 3.0 License