Lua este un limbaj tipizat dinamic, ceea ce înseamnă că variabilele nu au tipuri fixe, ci valorile stocate în ele poartă tipul. Lua dispune de exact 8 tipuri de date de bază: nil, boolean, number (întregi pe 64 de biți și numere în virgulă mobilă conform IEEE 754), string, table, function, thread (corutine) și userdata (date C native).
Declararea variabilelor și inspectarea tipurilor de date
-- În Lua, variabilele sunt GLOBALE în mod implicit!
-- REGULĂ DE AUR: Folosiți întotdeauna cuvântul-cheie 'local':
local numeUtilizator = "Mihai" -- string
local scor = 4500 -- number (integer)
local coeficient = 1.25 -- number (float)
local esteAutentificat = true -- boolean
local sesiuneExpirata = nil -- nil (reprezintă absența valorii)
-- Inspectarea tipului unei variabile prin funcția type():
print("Tipul variabilei scor:", type(scor)) -- afișează: number
print("Tipul variabilei sesiune:", type(sesiuneExpirata)) -- afișează: nil
-- Operatorul de lungime '#' pe șiruri de caractere:
local lungimeNume = #numeUtilizator
print("Lungimea numelui este de " .. lungimeNume .. " litere.")
-- Concatenarea șirurilor se realizează prin operatorul '..' :
local salut = "Bun venit, " .. numeUtilizator .. "! Scorul tău este: " .. scor
print(salut)
| Tip de date | Descriere și exemple | Echivalent logic boolean |
|---|---|---|
nil |
Absența valorii sau variabilă ștearsă/neinițializată. | Evaluează întotdeauna ca fals (false). |
boolean |
Valorile literale true și false. |
Exact valoarea lor. |
number |
Numere întregi pe 64 de biți și reale (ex: 42, 3.1415). |
Adevărat (inclusiv numărul 0 este adevărat în Lua!). |
string |
Secvențe imutabile de octeți (ex: "salut"). |
Adevărat (inclusiv șirul vid "" este adevărat!). |