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).