Nozioni di base

Testo di origine e nomi

.sd i file sono UTF-8. Strings/comments può contenere Unicode; gli identificatori rimangono ASCII. Tutti i nomi ordinari, inclusi tipi e varianti, sono minuscoli. Le costanti sono il caso del serpente superiore.

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

Il letterale ha il tipo preso in prestito statico str. UTF-8 valido di proprietà utilizza string. len restituisce la lunghezza in byte; Le operazioni Unicode scalar/grapheme appartengono alle librerie.

Legami

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

I collegamenti sono immutabili per impostazione predefinita. La mutazione attraverso un legame richiede mut. linear crea un obbligo di consumo esattamente una volta.

Tipi di nucleo

Aggregati

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

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

Il compilatore pulito non ha enum parola chiave; utilizzare un ADT senza carico utile. I sindacati grezzi richiedono unsafe construction/access.

Espressioni

Blocchi, if, e match valori di rendimento. Utilizzare l'espressione finale per un risultato implicito e ret per il rientro anticipato. L'aritmetica dei numeri interi segue le regole deterministiche in SEMANTIC_RULES.md; l'indicizzazione sicura rimane controllata nelle build di rilascio.

Il compilatore pulito implementa typed phase-1/2 f"..." interpolazione per testo, valori booleani, numeri interi, numeri in virgola mobile, specifiche di formato e statici display/debug tratti. Utilizzare {{/}} per le parentesi graffe letterali e .to_string()? solo quando è richiesta una stringa contigua di proprietà. La stampa rimane un'operazione esplicita della libreria.