il linguaggio Lua: parte 11
segue dalla parte 10 Rocce di Luna Poter organizzare il codice in più file è molto utile per modularizzare i programmi, creando package che verranno caricati tramite l’istruzione require “nomefile”. Vediamo un esempio: -- geompkg.lua module("geom") local function quadrato(x) return x*x end local function rettangolo(b,h) return b*h end function area(param) if param.lato then return quadrato(param.lato) end local area=rettangolo(param.base,param.altezza) if param.triangolo or param.trapezio then return area/2 end return area end -- usepkg.lua require('geompkg') print(geom.area{base=3,altezza=5}) print(geom.area{lato=3}) --errore, quadrato è local nel modulo --quindi non accessibile esternamente print(geom.quadrato(5)) nell’esempio vogliamo separare le funzioni di calcolo geometrico dal programma principale, così le raggruppiamo in un file geompkg.lua; notiamo che nello stesso file abbiamo definito anche delle funzioni locali che non saranno visibili all’esterno, come evidenziato dall’ultima riga di usepkg.lua. più avanti impareremo come un modulo possa anche essere binario, cioè compilato come codice nativo. Verificheremo perciò come sia agevole usare da Lua le sterminate librerie disponibili in C. ...