Types de données en Lua
Introduction aux types de données
Dans Lua, tout comme dans d'autres langages comme Python ou Ruby, nous faisons face à un langage à typage dynamique. Ce qui signifie que vous n'avez pas besoin de déclarer explicitement le type de données d'une variable. Vous pouvez simplement assigner une valeur et Lua en déduira automatiquement le type adéquat.
Les huit types de données de base
Lua dispose de huit types de données fondamentaux : - boolean - function - nil - number - string - table - thread - userdata
Voici quelques exemples illustrant les types les plus fréquemment utilisés :
-- Un boolean
flag = false
-- Une chaîne de caractères
name = "John Doe"
-- Un nombre. Il n'existe pas de type entier en Lua.
num = 13
-- Une fonction
function foo() return "bar" end
Utiliser la fonction type()
Une fonction intégrée pratique dans Lua est type()
, qui vous permet de déterminer le type d'une donnée. Par exemple :
location = 'Maple Road'
print(type(location)) -- Cela affichera "string"
print(type(12/3)) -- Cela affichera "number"
Conversion de types
Dans Lua, la conversion de types s'effectue automatiquement lors de certaines opérations, comme la concaténation de chaînes de caractères et de nombres, ou lorsque des chaînes de caractères contenant des valeurs numériques se retrouvent dans des expressions arithmétiques.
Voici quelques exemples :
-- La conversion se produit lors de la concaténation.
temperature = 56
print('Aujourd’hui, la température est de ' .. temperature .. ' degrés.') -- Affiche "Aujourd’hui, la température est de 56 degrés."
-- La conversion dans les expressions arithmétiques.
print('53' + 7) -- Cela affichera 60 car "53" a été converti en nombre.
Pour une conversion manuelle vers une chaîne, vous pouvez utiliser la fonction tostring()
.
player1Pts = 55
print('Le joueur 1 a ' .. tostring(player1Pts) .. ' points') -- Affiche "Le joueur 1 a 55 points"
Pour convertir un type de données en nombre, vous pouvez utiliser tonumber()
.
totalGuests = '30'
print(tonumber(totalGuests) / 5) -- Affiche 6