A cobertura de tradução é parcial. Consulte a fonte em inglês para a referência técnica completa. Ver versão em inglês →

Variáveis e Tipos

Bindings (let/var), anotações e os tipos embutidos principais.

Variáveis e Tipos

Variáveis e o raciocínio local de tipos estão entre as partes mais estáveis da superfície atual da linguagem. Esta página foca nas formas que você pode mostrar com segurança em exemplos hoje e em como elas interagem com o stack atual do checker.

Contrato atual

  • let é a forma padrão de binding imutável.
  • var está disponível para locais mutáveis e estado no estilo de laços.
  • A inferência local direta funciona bem, mas anotações explícitas ainda são a forma mais segura de documentar valores que interagem com unidades, efeitos ou fronteiras epistêmicas.
  • Bindings locais no estilo tupla, array e escalar continuam sendo bom material de ensino, porque aparecem consistentemente em exemplos e testes.

Padrões comuns

let x = 42
let ratio: f64 = 0.5
let pair = (x, ratio)
var total = x

total = total + 1

Onde inspecionar o checker

  • self-hosted/check/types.sio e self-hosted/check/infer.sio são os módulos mais relevantes para tipagem local e inferência.
  • self-hosted/check/env.sio rastreia o modelo de ambiente em evolução para bindings.
  • self-hosted/check/units.sio e self-hosted/check/epistemic.sio são onde locais comuns começam a interagir com regras de tipagem específicas de domínio.

Orientação para código real

  • Use locais inferidos para valores pequenos e óbvios, e anotações explícitas onde você quer que a documentação ou os diagnósticos permaneçam inequívocos.
  • Trate com desconfiança exemplos antigos que pareçam demais com Rust, Julia ou Python; o Sounio tem sua própria sintaxe e semântica.
  • Na dúvida, valide o trecho exato com souc check em vez de confiar na memória.