Contattataci

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

Numero di Partecipanti


Prezzo per partecipante

Corsi in Arrivo

Categorie relative