Ricerca nel sito web

Impara Lua con la nostra nuova guida scaricabile


Sia che tu voglia imparare Lua per entrare nel settore dei giochi e dei media, o che tu sia semplicemente interessato a un linguaggio di scripting semplice senza limiti superiori, Lua è un linguaggio di programmazione accessibile e potente.

Lua è un linguaggio di programmazione progettato per semplicità e prestazioni, utilizzato dalle società di videogiochi e multimediali come linguaggio di scripting front-end. Viene utilizzato anche dal window manager Awesome, dal file manager Far, dall'editor di testo Howl e da molti altri progetti open source per la sua chiarezza e il design pulito. Anche Lua è incorporabile, quindi puoi includere il codice Lua nelle codebase di un altro linguaggio (come Java, C e C++), nonché interagire con una ricca API C. Sia che tu voglia imparare Lua per entrare nel settore dei giochi e dei media, o che tu sia semplicemente interessato a un linguaggio di scripting semplice senza limiti superiori, Lua è un linguaggio di programmazione accessibile e potente.

Installa Lua

Su Linux, puoi installare Lua usando il tuo gestore pacchetti. La tua distribuzione potrebbe offrire vecchie versioni di Lua nell'interesse della compatibilità con le versioni precedenti. Installa la versione più recente a meno che tu non abbia un motivo per installare una versione precedente.

Il linguaggio di programmazione Luau (con una "u" finale) è un popolare fork di Lua 5.1 creato da Roblox. Se utilizzi Luau o Lua per la programmazione Roblox, installa Lua 5.1.

  • Su Windows o macOS, visita LuaDist.
  • In alternativa, per macOS, usa Homebrew.

Iniziare con Lua

Scrivi il codice Lua in un editor di testo. Non utilizzare un elaboratore di testi o un'applicazione per ufficio. Utilizza un semplice vecchio editor di testo o IDE, perché salvano il testo come testo semplice letterale senza caratteri di formattazione speciali che tendono a confondere i programmi che devono interpretare il tuo codice.

La maggior parte dei programmi, incluso il codice Lua, può essere organizzata in queste tre sezioni:

  1. Imposta l'ambiente: in questa sezione identifichi i componenti che desideri che il tuo programma abbia a disposizione. In alcuni programmi i componenti sono solo lettere e numeri, mentre nella codifica avanzata possono includere anche grafica e audio.

  2. Costruisci il motore: in questa sezione, dici a Lua cosa fare con i componenti che hai fornito. Nei programmi rudimentali, i dati vengono elaborati e viene prodotta una risposta. Nella codifica avanzata, questa sezione viene eseguita in loop mentre l'utente interagisce con l'applicazione.

  3. Vai: il tuo codice non fa nulla a meno che tu non gli dica di avviarsi.

Supponiamo che tu voglia scrivere un semplice script Lua che calcoli la possibilità di un'apocalisse zombi (o almeno, che produca un numero arbitrario che puoi sostenere sia la possibilità di un'apocalisse zombi). Ottenere un numero arbitrario da un computer è difficile:

-- setup

math.randomseed(os.time())
myNumber = math.random(0,100)

-- engine

function calculate()
  print("There is a " .. myNumber .. "% chance of a zombie apocalypse today.")
end

-- go

calculate()

Nella sezione setup, puoi avviare un generatore di numeri casuali con math.randomseed. Come fonte di casualità, utilizzi l'ora riportata dal tuo sistema operativo. Queste sono le funzioni integrate di Lua. Nessuno inizia conoscendo tutte le funzioni integrate di un linguaggio di programmazione, quindi puoi scoprirle da articoli come questo, attraverso ricerche su Internet basate su attività e leggendo la documentazione di Lua.

Successivamente, crei una variabile. Spesso antepongo i nomi delle variabili con "mio" per ricordare a me stesso che è qualcosa che ho creato per questa applicazione, non qualcosa integrato in Lua. Una variabile è un valore modificabile (o "mutabile", nella terminologia di programmazione). Stai rivendicando spazio nella RAM del tuo computer e memorizzando i dati lì in modo da poterli utilizzare in seguito. In questo caso, la variabile che crei utilizza la funzione math.random di Lua per selezionare un numero compreso tra 0 e 100. Ancora una volta, questa è una funzione incorporata.

Nella sezione engine crei la tua funzione, che io chiamo calculate. Non c'è niente di speciale nel termine calculate tranne che ha senso nel contesto di questa applicazione. Puoi nominare praticamente qualsiasi cosa alle tue funzioni. Comunque lo chiami, questa è la parte del tuo codice che fa effettivamente qualcosa. La maggior parte dei programmi per computer hanno diverse funzioni, ma questa è un'applicazione semplice, quindi ha solo una. La funzione calculate utilizza la funzione Lua print incorporata per visualizzare il testo sullo schermo. Come probabilmente puoi immaginare, due punti (..) in Lua indicano la continuazione di un'istruzione, simile a ciò che fanno i puntini di sospensione in inglese.

Infine, la sezione go esegue la funzione calculate. Se dimentichi di eseguire una funzione, l'applicazione non verrà mai eseguita. Sarebbe come sedersi in macchina senza accendere il motore.

Le etichette della sezione setup, engine e go sono commenti. I commenti in Lua sono indicati da due trattini iniziali (--), ed è un modo per dire espressamente a Lua di ignorare quella riga. In altre parole, setup, engine e go non sono parole chiave Lua e non sono necessarie nel tuo codice. Sono solo un modo utile per ricordare come strutturare il codice.

Prova a eseguire l'applicazione alcune volte:

$ lua ./zombie.lua
There is a 78% chance of a zombie apocalypse today.
$ lua ./zombie.lua
There is a 10% chance of a zombie apocalypse today.

Condizionali

A un livello molto basso, i computer funzionano secondo condizioni binarie. Un segnale elettrico è presente (1) oppure no (0). Ciò si manifesta anche nel codice e uno dei metodi classici forniti dai linguaggi di programmazione moderni per esprimere tale condizione binaria è l'istruzione if-then.

Un'istruzione if-then fa sì che il computer analizzi i dati raccolti finora, li confronti con alcune condizioni arbitrarie definite dall'utente e quindi intraprenda alcune azioni in base a ciò che scopre. Per rendere la tua prima applicazione Lua più dinamica, puoi aggiungere un'istruzione if-then alla tua funzione:

function calculate()
  print("There is a " .. myNumber .. "% chance of a zombie apocalypse today.")

  if myNumber > 50 then
    print("Take an umbrella!")
  else
    print("It's a good day for gardening!")
  end

end

Questa istruzione if-then utilizza un po' di matematica di base per determinare cosa sta segnalando l'esecuzione corrente dell'applicazione. Se c'è più del 50% di possibilità che si verifichi un'apocalisse zombi, allora vengono forniti all'utente alcuni consigli utili. Altrimenti, la probabilità deve essere pari o inferiore a 50, quindi vengono forniti consigli diversi. È una condizione semplice in cui il computer analizza il numero casuale che ha generato e quindi intraprende l'una o l'altra azione in base al risultato.

Esegui il codice per vedere i risultati:

$ lua ./zombie.lua
There is a 71% chance of a zombie apocalypse today.
Take an umbrella!

$ lua ./zombie.lua
There is a 65% chance of a zombie apocalypse today.
Take an umbrella!

$ lua ./zombie.lua
There is a 12% chance of a zombie apocalypse today.
It's a good day for gardening!

Esistono molti altri tipi di controlli condizionali che puoi utilizzare in Lua, inclusi repeat-until, when, for e altri.

Imparare Lua

Nessuno inizia a programmare sapendo già come programmare. Se sei interessato a imparare a scrivere codice, Lua è un ottimo modo per iniziare perché è un piccolo linguaggio composto principalmente da comodità per rendere più semplice la tua carriera alle prime armi come programmatore. Non è confuso con molte funzioni limite che probabilmente non utilizzerai. Invece, Lua fornisce gli elementi costitutivi di cui hai bisogno per creare le tue funzioni uniche che fanno esattamente quello che vuoi che facciano. Tutto quello che devi sapere su Lua è disponibile nella documentazione della lingua, ma se vuoi continuare ad approfondire il linguaggio, puoi anche scaricare il nostro eBook. Entro la fine del libro, conoscerai tutte le nozioni di base su Lua e dove trovare altre funzioni Lua in modo da poter passare alla programmazione Lua avanzata.

Articoli correlati: