Conceptos básicos

Texto fuente y nombres

.sd los archivos son UTF-8. Strings/comments puede contener Unicode; Los identificadores siguen siendo ASCII. Todos los nombres comunes, incluidos los tipos y variantes, están en minúsculas. Las constantes son mayúsculas y minúsculas.

// ação and 日本語 are valid comment text
const MAX_ITEMS = 64
let greeting = "olá"

El literal tiene un tipo prestado estático str. El UTF-8 válido de propiedad utiliza el string. len devuelve la longitud del byte; Las operaciones Unicode scalar/grapheme pertenecen a bibliotecas.

Fijaciones

let answer = 42
let mut count: usize = 0
let linear ticket = acquire_ticket()

Los enlaces son inmutables de forma predeterminada. La mutación a través de un enlace requiere mut. linear crea una obligación de consumo exactamente una vez.

Tipos de núcleos

Agregados

struct point { x: i64, y: i64 }
let origin = point.{ x: 0, y: 0 }

type color { red green blue }
let selected = color.green

El compilador limpio no tiene enum palabra clave; utilice un ADT sin carga útil. Los sindicatos crudos requieren unsafe construction/access.

Expresiones

bloques, if, y match valores de rendimiento. Utilice la expresión final para un resultado implícito y ret para un regreso anticipado. La aritmética de enteros sigue las reglas deterministas en SEMANTIC_RULES.md; la indexación segura permanece marcada en las versiones de lanzamiento.

El compilador limpio implementa tipos phase-1/2 f"..." interpolación para texto, bool, enteros, flotantes, especificaciones de formato y estático display/debug rasgos. uso {{/}} para llaves literales y .to_string()? sólo cuando se requiere una cadena contigua propia. La impresión sigue siendo una operación explícita de la biblioteca.