English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Arreglos de Lua

Un array es una colección de elementos de tipo de datos idénticos ordenados de manera determinada, puede ser un array unidimensional y un array multidimensional.

Los valores de clave de índice de un array de Lua se pueden representar con enteros, y el tamaño del array no es fijo.

Array unidimensional

Un array unidimensional es el más simple, su estructura lógica es una tabla lineal. Un array unidimensional puede usar un bucle for para extraer elementos del array, como en el siguiente ejemplo:

array = {"Lua", "Tutorial"}
for i= 0, 2 do
   print(array[i])
end

El resultado de la ejecución del código anterior es:

nil
Lua
Tutorial

Como puedes ver, podemos usar índices enteros para acceder a los elementos del array, y si el índice conocido no tiene valor, se devuelve nil.

En Lua, los valores de índice son 1 como punto de partida, pero también puedes especificar que comience en 0.

Además, podemos usar números negativos como valores de índice de array:

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

El resultado de la ejecución del código anterior es:

-4
-2
0
2
4

Matriz multidimensional

Una matriz multidimensional es una matriz que contiene matrices o arreglos unidimensionales, donde la clave de índice de un array es una matriz.

A continuación, se muestra una matriz multidimensional de tres filas y tres columnas:

-- Inicializar el array
array ={}
for i=1,3 do
   array[i] = {}
      for j=1,3 do
         array[i][j] = i*j
      end
end
-- Acceder al array
for i=1,3 do
   for j=1,3 do
      print(array[i][j])
   end
end

El resultado de la ejecución del código anterior es:

1
2
3
2
4
6
3
6
9

Matriz multidimensional de tres filas y tres columnas con diferentes claves de índice:

-- Inicializar el array
array ={}
maxRows = 3
maxColumns = 3
for row=1,maxRows do
   for col=1,maxColumns do
      array[row*maxColumns +col] = row*col
   end
end
-- Acceder al array
for row=1,maxRows do
   for col=1,maxColumns do
      print(array[row*maxColumns +col])
   end
end

El resultado de la ejecución del código anterior es:

1
2
3
2
4
6
3
6
9

Como puedes ver, en los ejemplos anteriores, el array ha establecido un valor de índice específico, lo que evita la aparición de valores nil y es beneficioso para ahorrar espacio en memoria.