Documentazione
· hunky doryUna guida al linguaggio, un concetto alla volta. Non serve aver letto la specifica.
Come leggere questi capitoli
La specifica definisce le regole del linguaggio. È breve perché deve entrare in un prompt, il testo che fornisci a un modello. Questi quattordici capitoli spiegano il linguaggio in ordine, un concetto alla volta. Consulta la specifica su questo sito quando ti serve una regola precisa.
| cosa | quando leggerlo |
|---|---|
| La home, e il README del repository | vuoi sapere che cos’è e se vale la pena andare avanti |
| Questa guida, quattordici capitoli | vuoi imparare il linguaggio un’idea alla volta, con programmi che girano |
| La specifica, un file solo | ti serve la regola esatta, o qualcosa non ha compilato e vuoi la frase che l’ha rifiutato |
| Perché, i no, le domande frequenti e le misure | vuoi sapere perché una regola c’è, che cosa è stato escluso, e quali affermazioni hanno un numero dietro |
| Il documento di design e le sedute, nel repository | vuoi il ragionamento dietro una decisione, e chi l’ha presa |
Ogni esempio di codice proviene da un file in examples/. Sotto ogni blocco trovi il nome del file. Durante la build, la procedura che genera il sito, un controllo verifica che il blocco corrisponda ancora al sorgente e interrompe la build se trova differenze. A ogni commit, cioè ogni modifica salvata nella cronologia del repository, questi programmi vengono compilati ed eseguiti in tre configurazioni. Consulta gli esempi e il loro output →
I capitoli
Leggi i capitoli dall’alto verso il basso: ciascuno usa i concetti spiegati nei precedenti. Accanto a ogni titolo trovi il programma usato negli esempi.
- Un primo programma
file, disposizione, commenti come documentazione ·
examples/gallery/00-first.hero - Errori
leggere un messaggio del compilatore, applicarne la correzione, e vedere cosa non rileva ·
tests/golden/ - Record e funzioni
dichiarazioni, campi nominati, chiamate con il punto ·
examples/gallery/01-points.hero - Variant e match
tutti i casi vanno gestiti esplicitamente ·
examples/gallery/02-tokens.hero - Il fallimento è un valore
niente null, niente eccezioni ·
examples/gallery/03-fallible.hero - Il flusso di controllo
if, while, for, range ·
examples/gallery/04-loops.hero - Nomi e modifiche
= e @, e perché nascondere un nome è un errore ·
examples/gallery/05-mutation.hero - Generici e valori funzione
una forma, molti tipi ·
examples/gallery/06-generics.hero - Le stringhe
caratteri speciali, byte e testo, e un valore dentro una stringa ·
examples/gallery/07-strings.hero,12-interpolation.hero - Le mappe
la ricerca restituisce un valore o un errore ·
examples/gallery/10-maps.hero - Valori fino in fondo
copie, e un albero senza nemmeno un puntatore ·
examples/gallery/11-trees.hero - I moduli e i file
come trovare un modulo e usarne il nome ·
examples/shapes/ - Test e buchi
i test dentro il linguaggio, e ??? come domanda ·
examples/gallery/09-holes.hero - Il confine con il C
extern, header, e che cosa controlla clang per te ·
examples/gallery/08-ffi.hero