Noções básicas
Texto fonte e nomes
.sd os arquivos são UTF-8. Strings/comments pode conter Unicode; os identificadores permanecem ASCII. Todos os nomes comuns, incluindo tipos e variantes, estão em minúsculas. As constantes são a caixa superior da cobra.
// ação and 日本語 are valid comment text
const MAX_ITEMS = 64
let greeting = "olá"
O literal possui tipo emprestado estático str. UTF-8 válido de propriedade usa string. len retorna comprimento em bytes; As operações Unicode scalar/grapheme pertencem a bibliotecas.
Ligações
let answer = 42
let mut count: usize = 0
let linear ticket = acquire_ticket()
As ligações são imutáveis por padrão. A mutação por meio de uma ligação requer mut. linear cria uma obrigação de consumo exatamente uma vez.
Tipos principais
- inteiros:
i8…i64,u8…u64,isize,usize; Aliasesbyteu8 - flutuadores:
f32,f64 - controle:
bool,void,never - text/buffers:
str,string,bytes,shared_bytes - composto: matrizes
[n]t, fatias[]t/mut []t, tuplas, estruturas, ADTs, uniões, opções, resultados, valores de função, ponteiros, genéricos,linear t
Agregados
struct point { x: i64, y: i64 }
let origin = point.{ x: 0, y: 0 }
type color { red green blue }
let selected = color.green
O compilador limpo não tem enum palavra-chave; use um ADT sem carga útil. Os sindicatos brutos exigem unsafe construction/access.
Expressões
Blocos, ife match valores de rendimento. Use a expressão final para um resultado implícito e ret para retorno antecipado. A aritmética inteira segue as regras determinísticas em SEMANTIC_RULES.md; a indexação segura permanece verificada nas compilações de lançamento.
O compilador limpo implementa digitado phase-1/2 f"..." interpolação para texto, bool, inteiros, flutuantes, especificações de formato e estática display/debug características. Usar {{/}} para colchetes literais e .to_string()? somente quando uma string contígua de propriedade é necessária. A impressão continua sendo uma operação explícita da biblioteca.