Grazie per aver inviato la tua richiesta! Uno dei nostri team membri ti contatterà a breve.
Grazie per aver inviato il tuo prenotazione! Uno dei nostri team membri ti contatterà a breve.
Struttura del corso
Introduzione a Lua
- Un po' di storia
- Obiettivi, caratteristiche e limiti di Lua
- Risorse per la documentazione e i tutorial di Lua
- Installazione dell'interprete Lua
- Configurazione e utilizzo di LuaRocks
Sintassi e semantica di base
- Identificatori
- Commenti, commenti di blocco
- Variabili globali e applicazione della modalità strict
- Variabili locali
- Programmi autonomi, argomenti del programma
- Unità di compilazione, chunk, espressioni, punti e virgola
Tipi di dati e strutture dati
- Tipi di base: nil, booleano, numero, stringa
- Tipi di oggetto: funzione, userdata, thread, tabella
- Riferimenti/oggetti vs valori di base
- L'importanza delle tabelle in Lua
Introduzione alle tabelle e alla loro versatilità
- Tabelle come array associativi
- Tabelle come array numerici, sequenze
Strutture di controllo di base
- if then elseif else end
- Ciclo while
- Ciclo repeat
- Ciclo for semplice
Gestione degli errori
- Valori di ritorno vs eccezioni
- Conversione di un valore di ritorno in un'eccezione
- Conversione di un'eccezione in un valore di ritorno
- Livelli di errore
Programmi di esempio
- Valutazione di polinomi
- Ricerca in ampiezza (BFS)
- Esercizi aggiuntivi
Maggiori dettagli sulle funzioni
- Argomenti nominati
- Chiamate orientate agli oggetti
- Closure
- Currying
- Chiamate di coda (tail calls)
- Assegnazione e ritorno multipli
- Varargs
Iteratori e co-routine
- Ciclo for generico
- Iteratori senza stato vs con stato
- Differenze tra iteratori e co-routine
Metatable e metametodi
- Esempio sugli insiemi (set)
- Metametodo __tostring
- Metametodi aritmetici
- Metametodi __index, __newindex
- Metametodo __len
Moduli e pacchetti
- Utilizzo dei moduli
- Crea di moduli
- Organizzazione dei moduli in pacchetti
Programmazione orientata agli oggetti
- I mattoni della POO in Lua
- Esempi
Discussione su funzionalità linguistiche più avanzate
- Tabelle deboli (weak tables)
- Finalizzatori
- Compilazione, eval, caricamento
Requisiti
Conoscenza di almeno un altro linguaggio di programmazione. Esperienza di programmazione. Opzionalmente, la familiarità con altri linguaggi di scripting faciliterà la comprensione di Lua.
14 ore