Variables y constantes

Forja distingue entre variables (mutables, se pueden reasignar) y constantes (inmutables, no se pueden modificar). Esto refleja el sistema de mutabilidad de Rust pero con palabras en español.

🔥 Regla de oro: variable = let mut en Rust. constante = let en Rust.

variable — Mutable

Las variables se pueden reasignar cuantas veces quieras:

📝 Reasignación permitida
variable nombre = "Gaucho"
variable edad = 30

// ✅ Reasignación permitida
edad = 31
nombre = "Otro nombre"

constante — Inmutable

Las constantes no pueden modificarse después de su declaración:

📝 No se puede reasignar
constante altura = 1.85
constante pais = "Argentina"

// ❌ Error: No se puede modificar una constante
// altura = 2.0  → ErrorDePropiedad

Con tipo explícito

Podés declarar el tipo después del nombre con : Tipo:

📝 Tipado explícito
variable nombre: Texto = "Gaucho"
variable edad: Entero = 30
variable altura: Decimal = 1.85
constante activo: Booleano = verdadero

Sin valor inicial

Podés declarar una variable sin asignarle valor, aunque necesitás especificar el tipo:

📝 Declaración sin inicialización
variable mensaje: Texto = ""
variable contador = 0

Inferencia de tipos

Si no se especifica el tipo, Forja lo infiere automáticamente del valor asignado:

🤖 Inferencia automática
variable ciudad = "Buenos Aires"   // inferido → Texto
variable edad = 25                  // inferido → Entero

Equivalencia con Rust

Esta tabla te muestra cómo se traduce cada declaración de Forja a Rust:

ForjaRust generado
variable x = 5let mut x = 5;
constante x = 5let x = 5;
variable x: Entero = 5let mut x: i64 = 5;
constante x: Texto = "a"let x: String = String::from("a");
⚠️ Diferencia clave con Rust: En Rust las variables son inmutables por defecto. Forja invierte esto: variable es mutable, constante es inmutable. Esto es más intuitivo para quienes están aprendiendo.