Fundamentos da linguagem
Valores e bindings
let name: string = "Ada";
let mut visits: int = 0;
visits = visits + 1;
const MAX: int = 100;
let cria um binding; mut permite reatribuição. const exige inicializador.
var também é reconhecido, mas a distinção completa entre let, var e
const ainda é parcial entre backends; prefira let e const.
Tipos
Os tipos práticos da alpha são int, float, bool, char, string e
void. Os nomes inteiros com largura (i32, u64 etc.) convergem internamente
para int; não dependa ainda de overflow ou largura específicos. null,
never, any, opcionais e uniões têm contrato parcial.
Operadores
let total = 2 + 3 * 4;
let same = total == 14;
let inside = total >= 0 && total < 20;
let text = "Nova" + "Lang";
Aritmética: + - * / %; comparação: == != < <= > >=; lógica:
&& || ! (ou and, or, not); bit a bit: & | ^ ~ << >>.
Atenção: a VM ainda avalia os dois operandos de && e ||. Não coloque
efeitos colaterais no lado direito esperando curto-circuito.
Comentários de linha começam com //; blocos usam /* ... */. Identificadores
Unicode são aceitos, mas nomes ASCII são mais portáveis no ecossistema atual.