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:

  1. 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


Este artículo es parte del Manual de Ruby.


Herramientas personales