Lua - Tableaux
Les tableaux sont un agencement ordonné d'objets, qui peut être un tableau unidimensionnel contenant une collection de lignes ou un tableau multidimensionnel contenant plusieurs lignes et colonnes.
Dans Lua, les tableaux sont implémentés à l'aide de tables d'indexation avec des entiers. La taille d'un tableau n'est pas fixe et peut augmenter en fonction de nos besoins, sous réserve de contraintes de mémoire.
Réseau unidimensionnel
Un tableau unidimensionnel peut être représenté à l'aide d'une structure de table simple et peut être initialisé et lu à l'aide d'un simple forboucle. Un exemple est présenté ci-dessous.
array = {"Lua", "Tutorial"}
for i = 0, 2 do
print(array[i])
end
Lorsque nous exécutons le code ci-dessus, nous obtenons la sortie suivante.
nil
Lua
Tutorial
Comme vous pouvez le voir dans le code ci-dessus, lorsque nous essayons d'accéder à un élément dans un index qui n'est pas là dans le tableau, il renvoie nil. Dans Lua, l'indexation commence généralement à l'index 1. Mais il est également possible de créer des objets à l'index 0 et au-dessous de 0. Un tableau utilisant des indices négatifs est montré ci-dessous où nous initialisons le tableau à l'aide d'une boucle for .
array = {}
for i= -2, 2 do
array[i] = i *2
end
for i = -2,2 do
print(array[i])
end
Lorsque nous exécutons le code ci-dessus, nous obtiendrons la sortie suivante.
-4
-2
0
2
4
Réseau multidimensionnel
Les tableaux multidimensionnels peuvent être mis en œuvre de deux manières.
- Tableau de tableaux
- Tableau unidimensionnel en manipulant des indices
Un exemple de tableau multidimensionnel de 3. 3 est illustré ci-dessous en utilisant un tableau de tableaux.
-- Initializing the array
array = {}
for i=1,3 do
array[i] = {}
for j=1,3 do
array[i][j] = i*j
end
end
-- Accessing the array
for i=1,3 do
for j=1,3 do
print(array[i][j])
end
end
Lorsque nous exécutons le code ci-dessus, nous obtiendrons la sortie suivante.
1
2
3
2
4
6
3
6
9
Un exemple de tableau multidimensionnel est illustré ci-dessous à l'aide d'indices de manipulation.
-- Initializing the array
array = {}
maxRows = 3
maxColumns = 3
for row=1,maxRows do
for col=1,maxColumns do
array[row*maxColumns +col] = row*col
end
end
-- Accessing the array
for row=1,maxRows do
for col=1,maxColumns do
print(array[row*maxColumns +col])
end
end
Lorsque nous exécutons le code ci-dessus, nous obtiendrons la sortie suivante.
1
2
3
2
4
6
3
6
9
Comme vous pouvez le voir dans l'exemple ci-dessus, les données sont stockées sur la base d'indices. Il est possible de placer les éléments de manière clairsemée et c'est ainsi que fonctionne l'implémentation Lua d'une matrice. Puisqu'il ne stocke pas de valeurs nulles dans Lua, il est possible d'économiser beaucoup de mémoire sans aucune technique spéciale dans Lua par rapport aux techniques spéciales utilisées dans d'autres langages de programmation.