VII. Variables


1. ¿Qué es una variable?

  • Una variable es un identificador utilizado para almacenar un valor específico en memoria, con el fin de referenciarlo desde el código cuando sea necesario

  • Las variables pueden cambiar su valor durante la ejecución del programa, en función del flujo que este tome


2. Declarar una variable

irb(main):000> edad = 18
=> 18

irb(main):000> puts(edad)
18
=> nil

INFORMACIÓN

¿QUÉ SIGNIFICA LA SENTENCIA => nil EN IRB?

puts es uno de los métodos utilizados en Ruby para imprimir una sentencia en pantalla, pero no retorna un dato específico. Aunque muestra el contenido, no devuelve un valor como tal, por lo que Ruby retorna automáticamente el valor nil

Este comportamiento especialmente es visible si se trabaja desde la consola IRB, pero al trabajar desde un código fuente se puede controlar mediante el propio flujo del programa


3. Nombrar variables

  • Utilizar snake_case para definir variables como buena práctica

  • Al trabajar con variables en métodos, clases o bloques los bloques, solo el ámbito interno puede acceder a variables inicializadas en un ámbito externo; pero el ámbito externo no puede acceder a variables declaradas en un ámbito interno

# Mala práctica
e = 29
string_Name = "Kenny"

# Buena práctica
mi_edad = 19
mi_nombre = "Kenny"
# Versión original documentada
mi_edad = 19
mi_nombre = "Kenny"

# Versión ofuscada de definición de variables
a = 19
n = "Kenny"

4. Incremento en variables

  • Realizar incrementos en el valor de una variable numérica

irb(main):000> edad = 29
=> 29

irb(main):000> edad = edad + 10
=> 39

irb(main):000> edad += 10
=> 49

5. Interpolación

  • La interpolación de variables permite evaluar el valor de una variable mediante un marcador de posición dentro de un string u otra sentencia

  • Como en todos los lenguajes, Ruby tiene su propia forma de declarar una interpolación de variables, la cual comienza con un símbolo asterisco seguido de la variable a llamar entre llaves #{}

  • Se recomienda usar comillas dobles en la definición del string desde donde se interpolará una variable para no generar problemas de tipado, como en ciertas ocasiones al definir el string con comillas simples

# Interpolación en string definido con comillas dobles
irb(main):000> nombre = "Kenny"
=> "Kenny"

irb(main):000> puts("Hola, #{nombre}")
Hola, Kenny
=> nil

# Error en interpolación en string definido con comillas simples
irb(main):000> nombre = "Kenny"
=> "Kenny"

irb(main):000> puts('Hola, #{nombre}')
Hola, #{nombre}
=> nil

6. Tipos de variables

  • Ruby tiene cinco tipos principales de variables, cada una con un prefijo diferente que plantea su modo de declaración e indica su ámbito y comportamiento

Tipo
Prefijo
Ejemplo
Ámbito

Variable local

No tiene

nombre = "Ana"

Dentro de métodos, bloques

Variable global

$

$global = 42

Accesible desde cualquier parte

Variable de instancia

@

@edad = 20

Dentro de instancias de clases

Variable de clase

@@

@@contador = 0

Compartida entre instancias

Constante

No tiene, pero se declaran siempre en mayúsculas

PI = 3.14

De acceso global o por clase

# Script de variables vars.rb
$global_var = "Estoy en todo el programa"     	   # Variable global

class Persona
	@@contador = 0                        	   # Variable de clase
	PI = 3.1416                          	   # Constante

	def initialize(nombre)
		@nombre = nombre                   # Variable de instancia
		@@contador += 1
	end

	def mostrar
		local_var = "Hola"                 # Variable local
		puts "#{local_var}, soy #{@nombre} y ya hay #{@@contador} personas"
		puts "Constante PI: #{PI}"
		puts "Global: #{$global_var}"
	end
end

p1 = Persona.new("Javier")
p1.mostrar

Última actualización