SPECTRALANG_

// DOCS NAVIGATION

Operadores_

SOURCE: content/docs/reference/02-fundamentos.md02 Fundamentos / 5. Operadores / Operators

Operadores Aritméticos / Arithmetic Operators

Operador / OperatorOperação / OperationTipos / TypesExemplo / Example
+Adição / Additionint, float, string+string3 + 47
-Subtração / Subtractionint, float10 - 37
*Multiplicação / Multiplicationint, float3 * 412
/Divisão / Divisionint, float10 / 33 (int)
%Módulo (resto) / Modulo (remainder)int, float10 % 31
let a = 10
let b = 3

let soma = a + b
         // 13
let diff = a - b
         // 7
let prod = a * b
         // 30
let quoc = a / b
         // 3  (divisão inteira / integer division)
let resto = a % b
        // 1

// Com floats / With floats
let x = 10.0
let y = 3.0
let div_float = x / y
    // 3.333...

Nota / Note: Divisão entre dois int é divisão inteira (trunca). Use float para divisão decimal.
Division between two ints is integer division (truncates). Use float for decimal division.

Operadores de Comparação / Comparison Operators

PT-BR:
Todos os operadores de comparação retornam bool.

EN-US:
All comparison operators return bool.

Operador / OperatorSignificado / MeaningExemplo / Example
==Igual a / Equal to5 == 5true
!=Diferente de / Not equal to5 != 3true
<Menor que / Less than3 < 5true
>Maior que / Greater than5 > 3true
<=Menor ou igual / Less or equal3 <= 3true
>=Maior ou igual / Greater or equal5 >= 3true
let x = 10
let y = 20

let igual = x == y
       // false
let dif = x != y
         // true
let menor = x < y
        // true
let maior = x > y
        // false
let men_ig = x <= 10
     // true
let mai_ig = y >= 20
     // true

Operadores Lógicos / Logical Operators

Operador / OperatorSignificado / MeaningExemplo / Example
&&E lógico / Logical ANDtrue && falsefalse
||Ou lógico / Logical ORtrue || falsetrue
!Negação lógica / Logical NOT!truefalse
let a = true
let b = false

let e = a && b
           // false
let ou = a || b
          // true
let nao_a = not a
           // false
let nao_b = not b
           // true

// Condições compostas / Compound conditions
let x = 5
if x > 0 && x < 10 {
    // x está entre 1 e 9 / x is between 1 and 9
}

Operadores Unários / Unary Operators

Operador / OperatorSignificado / MeaningTipo / TypeExemplo / Example
-Negação aritmética / Arithmetic negationint, float-x, -3.14
!Negação lógica / Logical negationbool!flag
let positivo = 42
let negativo = -positivo
    // -42

let verdadeiro = true
let falso = not verdadeiro
     // false

Operadores de Intervalo / Range Operators

Operador / OperatorTipo / TypeExemplo / Example
..Exclusivo (não inclui o fim) / Exclusive (excludes end)0..5 → 0,1,2,3,4
..=Inclusivo (inclui o fim) / Inclusive (includes end)1..=5 → 1,2,3,4,5
// Usados principalmente em for loops / Mainly used in for loops
for i in 0..5 {
    // i = 0, 1, 2, 3, 4
}

for i in 1..=5 {
    // i = 1, 2, 3, 4, 5
}

// Ranges também podem ser armazenados / Ranges can also be stored
let r = 0..10
let r_inc = 1..=100

Precedência de Operadores / Operator Precedence

PT-BR:
Da maior para a menor precedência (operadores mais acima são avaliados primeiro):

EN-US:
From highest to lowest precedence (operators higher up are evaluated first):

Nível / LevelOperadores / Operators
1 (mais alto / highest)! (unário), - (unário)
2*, /, %
3+, - (binário)
4<, >, <=, >=
5==, !=
6&&
7 (mais baixo / lowest)||
let resultado = 2 + 3 * 4
       // 14 (não 20 / not 20)
let resultado2 = (2 + 3) * 4
    // 20
let cond = x > 0 && y < 10
      // comparações antes de && / comparisons before &&