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 →

Seu Primeiro Programa

Explore estruturas e acesso a campos com um exemplo completo do repositório.

Depois de Olá, Mundo, explore uma estrutura com dois campos. Este exemplo é o código completo de examples/native/struct_basic.sio, sem alterações.

O programa completo

// Struct literal construction and field access in native-v2 driver.
// Expected: prints "7", exits 0.

struct Point { x: i64, y: i64 }

fn main() -> i64 with IO {
    let p = Point { x: 3, y: 4 }
    let s = p.x + p.y
    print_int(s)
    print_char(10)
    0
}

struct Point define um tipo com campos nomeados. Point { ... } constrói um valor, e p.x e p.y acessam seus campos. As funções de impressão usam o efeito IO. A expressão final 0 é o valor de retorno desta main.

Verifique e execute

Conclua primeiro a preparação da plataforma, incluindo a compilação nativa se usar macOS ARM64. Na raiz do repositório:

export SOUNIO_STDLIB_PATH="$PWD/stdlib"
./bin/souc check examples/native/struct_basic.sio
./bin/souc run examples/native/struct_basic.sio

Execute somente após a verificação passar. O comentário do arquivo especifica a saída esperada 7 e o código de saída zero. São critérios de comparação, não um novo resultado de execução. Guarde a saída real, o código de saída e a identidade do compilador do seu ambiente.

Continue com seu próprio programa

Copie o exemplo para outro arquivo e altere um campo de cada vez; depois verifique e execute sua versão.

Este exemplo ensina estruturas comuns. Uma estrutura chamada KnowledgeF64 com campos value, uncertainty e confidence não implementa Knowledge<T> nem comprova propagação de incerteza, proveniência ou imposição de limites de confiança. Para as APIs epistêmicas documentadas e seus limites, siga o guia de programação em português e as limitações conhecidas (em inglês).