Operadores

Forja soporta los operadores clásicos de la programación, organizados por categorías. Incluye operadores aritméticos, relacionales, lógicos, de referencia, asignación compuesta y acceso.

Aritméticos

OpDescripciónEjemploResultado
+Suma / concatenación5 + 3 / "a" + "b"8 / "ab"
-Resta10 - 46
*Multiplicación6 * 742
/División20 / 54
%Módulo (resto)10 % 31
💡 El operador + también concatena strings: "Hola " + "mundo""Hola mundo"

Asignación compuesta

OpDescripciónEjemploEquivale a
+=Suma acumuladax += 1x = x + 1
-=Resta acumuladax -= 1x = x - 1
*=Multiplicación acumuladax *= 2x = x * 2
/=División acumuladax /= 2x = x / 2
%=Módulo acumuladox %= 2x = x % 2

Relacionales

OpDescripciónEjemplo
>Mayor quex > 5
<Menor quex < 10
>=Mayor o igualx >= 18
<=Menor o igualx <= 100
==Igualdadx == 5
!=Diferentex != 0

Lógicos

OpDescripciónEjemplo
&&Y (AND)activo && edad >= 18
||O (OR)x == 0 || y == 0
!NO (NOT)!activo

Referencia y acceso

OpDescripciónEjemplo
&Referencia (préstamo inmutable)&variable
.Acceso a miembro/métodoobjeto.campo, obj.metodo()
[]Acceso por índice (arreglos y mapas)arr[0], mapa["clave"]
->Flecha de retorno o brazo de match-> Entero, caso 1 -> "uno"
::Acceso cualificado a módulo/traitstd::io, Volador::volar
..Rango1..10

Precedencia de operadores

De mayor a menor precedencia. Los operadores con mayor precedencia se evalúan primero:

NivelOperadoresDescripción
1 (más alta)!, - (unarios), &Negación, negación aritmética, referencia
2*, /, %Multiplicación, división, módulo
3+, -Suma, resta
4>, <, >=, <=Comparaciones relacionales
5==, !=Igualdad y diferencia
6&&Y lógico
7 (más baja)||O lógico

Usá paréntesis ( ... ) para agrupar y forzar precedencia:

📐 Agrupación
variable resultado = (2 + 3) * (10 - 5)
// resultado = 25

// Sin paréntesis sería 2 + 3 * 10 - 5 = 27