Tableaux Lua

Un tableau est une collection d'éléments du même type de données disposés dans un certain ordre, qui peut être un tableau unidimensionnel ou un tableau multidimensionnel.

En Lua, un tableau n'est pas un type de données spécifique, mais une structure de données utilisée pour stocker un ensemble de valeurs.

En fait, Lua ne dispose pas d'un type tableau dédié ; au lieu de cela, il utilise une structure de données appelée"table"pour implémenter les fonctionnalités des tableaux.

Les valeurs de clé d'index des tableaux Lua peuvent être représentées par des entiers, et la taille du tableau n'est pas fixe.

En Lua, les valeurs d'index commencent à1comme point de départ, mais vous pouvez également spécifier de commencer à 0.


Tableau unidimensionnel

Un tableau unidimensionnel est le type de tableau le plus simple, et sa structure logique est une liste linéaire.

Accéder aux éléments du tableau à l'aide d'indices :

Exemple

-- Créer un tableau
local myArray = {10, 20, 30, 40, 50}

-- Accéder aux éléments d'un tableau
print(myArray[1])  -- Sortie 10
print(myArray[3])  -- Sortie 30

La sortie de l'exécution du code ci-dessus est :

10
30

Pour calculer la longueur d'un tableau (c'est-à-dire le nombre d'éléments dans le tableau), vous pouvez utiliser l'opérateur#:

Exemple

local myArray = {10, 20, 30, 40, 50}

-- Calculer la longueur du tableau
local length = #myArray

print(length) -- Sortie 5

La sortie de l'exécution du code ci-dessus est :

5

Un tableau à une dimension peut utiliser une boucleforpour parcourir les éléments du tableau, comme dans l'exemple suivant :

Exemple

-- Créer un tableau
local myArray = {10, 20, 30, 40, 50}

-- Parcourir le tableau
for i = 1, #myArray do
    print(myArray[i])
end

La sortie de l'exécution du code ci-dessus est :

10
20
30
40
50

Les indices Lua commencent à 1 par défaut :

Exemple

array = {"Lua", "Tutorial"}

for i= 0, 2 do
   print(array[i])
end

La sortie de l'exécution du code ci-dessus est :

nil
Lua
Tutorial

Comme vous pouvez le voir, nous pouvons utiliser des indices entiers pour accéder aux éléments du tableau. Si l'indice spécifié n'a pas de valeur, il renvoienil。

De plus, nous pouvons également utiliser des nombres négatifs comme valeurs d'indice de tableau :

Exemple

array = {}

for i= -2, 2 do
   array[i] = i *2
end

for i = -2,2 do
   print(array[i])
end

La sortie de l'exécution du code ci-dessus est :

-4
-2
0
2
4

Nous pouvons également modifier les éléments du tableau :

Exemple

-- Créer un tableau
local myArray = {10, 20, 30, 40, 50}

-- Modifier les éléments du tableau
myArray[2] = 25

-- Parcourir le tableau
for i = 1, #myArray do
    print(myArray[i])
end

La sortie de l'exécution du code ci-dessus est :

10
25
30
40
50

Nous pouvons également ajouter des éléments au tableau :

Exemple

-- Créer un tableau
local myArray = {10, 20, 30, 40, 50}

-- Ajouter un nouvel élément à la fin du tableau
myArray[#myArray + 1] = 60


-- Parcourir le tableau
for i = 1, #myArray do
    print(myArray[i])
end

La sortie de l'exécution du code ci-dessus est :

10
20
30
40
50
60

Nous pouvons également supprimer des éléments du tableau :

Exemple

-- Créer un tableau
local myArray = {10, 20, 30, 40, 50}

-- Supprimer le troisième élément
table.remove(myArray, 3)

-- Parcourir le tableau
for i = 1, #myArray do
    print(myArray[i])
end

La sortie de l'exécution du code ci-dessus est :

10
20
40
50

Tableau multidimensionnel

Un tableau multidimensionnel est un tableau qui contient des tableaux, ou un tableau où la clé d'index d'un tableau à une dimension correspond à un tableau.

Voici un tableau multidimensionnel à trois lignes et trois colonnes :

Exemple

-- Initialiser le tableau
array = {}
for i=1,3 do
   array[i] = {}
      for j=1,3 do
         array[i][j] = i*j
      end
end

-- Accéder au tableau
for i=1,3 do
   for j=1,3 do
      print(array[i][j])
   end
end

La sortie de l'exécution du code ci-dessus est :

1
2
3
2
4
6
3
6
9

Un tableau multidimensionnel à trois lignes et trois colonnes utilisant différentes clés d'index :

Exemple

-- Initialiser le tableau
array = {}
maxRows = 3
maxColumns = 3
for row=1,maxRows do
   for col=1,maxColumns do
      array[row*maxColumns +col] = row*col
   end
end

-- Accéder au tableau
for row=1,maxRows do
   for col=1,maxColumns do
      print(array[row*maxColumns +col])
   end
end

La sortie de l'exécution du code ci-dessus est :

1
2
3
2
4
6
3
6
9

Comme vous pouvez le voir, dans les exemples ci-dessus, le tableau a des valeurs d'index spécifiées définies, ce qui évite les valeurs nil et aide à économiser de l'espace mémoire.

Autres extensions