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.