Manual de Ruby: Variables
De Foros del Web
Variables Ruby
En muchos lenguajes de programación como lo son Java y C utilizan variables fuertes(strong) o estáticas, lo que significa qué cuando una variables es declarada, también es declarado el tipo de objeto que ésta va a almacenar. Recordemos que en Ruby una variable guarda cualquier objeto, es decir, si en Ruby todo es un objeto entonces una variable guarda cualquier cosa, ésto nos provee muchas ventajas ya que podemos optar por la técnica d e re-utilización de varaibles pasadas.
Cuando el interprete de Ruby realiza algo conocido como "Duck Typing", si camina como pato y hace "quack" es un pato, de igual forma lo hace para las variables.
A continuación veremos un breve ejemplo de asignación a una variable,
a = 'Hola mundo!'
b = 45
pero como es de esperarse en mi programa yo prodría hacer lo siguiente:
a = 12
b = 'Llamen a los Bomberos!'
es decir cambiar la declaración de mi variable 'a' que ahora guardara un entero(int) y seguir trabajando
sin ningún problema, ya que Ruby es dinámico (dynamically typed language).
Miremos otro ejemplo de asignación:
a = 10
b = 20
c = 30
d = 40
obtendríamos el mismo resultado, solo que más rápido, usando asignación paralela:
a, b, c, d = 10, 20, 30, 40
otro ejemplo sería:
- Ruby es dinámico
x = 7 #número entero
x = "house" #string
x = 7.5 #número real
En ruby también podemos saber el tipo de objeto que guarda una variable,
y = 100
y.kind_of? Integer => true
Tipos de Variable
Ruby tiene cuatro (4) tipos: Local, Global, Instancia, Clase. Y agregando a los tipos de variables tenemos un tipo Constante, cada una de las anteriores se define con carateres especiales al inicio. Basandonos en lo anterior mencionado debemos comentar un poco sobre los tipos de variables y sus declaraciones:
Nombre Comienza con
$ Variable Global
@ Variable de instacia
[a-z] or _ Variable local
[A-Z] Constante
@@ Variable de Clase
Variables Globales
Una variable global en Ruby es accesible desde cualquier parte del programa, sin importar donde fue declarada.
$ruby = "Esto es Documentación de Ruby"
Es muy importante también saber que Ruby tiene unas variables globales per-definidas, éstas están disponibles
a cualquier desarrollador que desea obtener de información de Ruby environment.
A continuación una breve descripción de algunas de éstas variables anteriormente mencionadas:
Nombre Variable
$@ El lugar de el último error
$_ El último string leido por gets
$. La última línea leída por el interprete
$& El último string que concuerda con regexp
$~ El último regexp match, como un arreglo de sub-expresiones
$n El n-esima sub-expresión en el último match
$= Bandera de reconocimiento de mayúsculas y minúsculas
$/ Historial del separador de entrada
$\ Historial del separador de salida
$0 El nombre de el script de Ruby que se está ejecutando
$* Los argumentos de la línea de comandos usados para invocar el script
$$ El ID del proceso del interprete de Ruby
$? El estado de salida del último proceso hijo ejecutado
ejemplo:
irb > gets hola => "hola\n"
irb > $_ => "hola\n"
irb > $$ => 17403
Variables Locales
Estas variables son locales al scope en el cual fueron declaradas.
a = 1
loop {
b = 2
puts defined?(a) # true; "a" fue inicializada en el bloque ascendente.
puts defined?(b) # true; "b" fue inicializada en este bloque.
break
}
puts defined?(a) # true; "a fue inicializada en este bloque.
puts defined?(b) # false; "b" fue inicializada en loop
Variables de Instancia
Las variables de instancia pertenecen a un objeto en sí, es decir solo pueden ser accesada por
medio del objeto contenedor.
Variable de instancia no inicializada se le define por defecto el valor nil.
@var
@var = 'Hola mundo!'
@var = 45
Variables de Clase
Una variable de clase es compartida con todas las instacias de una clase, esto significa que solo un valor
de la variable existe para todos los objetos instanciados de esta clase.
Si un objeto cambia el valor de una varailbe de clase éste valor cambia para todos los demás que intenten
accesar a ésta.
Variable de clase no inicializada se le define por defecto el valor nil.
@@var
@@var = 'Hola mundo!'
@@var = 45
Variables Constantes
A una constante se le puede re-asignar un valor despues de que ésta fue inicializada, pero esta acción
generara un advertencia(warning).
Las constantes de Ruby son valores los cuales, una vez asignados, no se les debería cambiar este valor. A lo que me refiero con "debería" es porque Ruby a diferencia de otros lenguajes de programación sí deja que el valor de una constante cambie despues de declarada, de igual forma el inteprete tirara un mensaje de advertencia(warning).
VAR
Var = 3.141592654 # PI
