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

Arrays do Lua

Array, é uma coleção de elementos do mesmo tipo de dados organizados em uma ordem específica, pode ser um array unidimensional e um array multidimensional.

Os índices de chave do array do Lua podem ser representados por inteiros, e o tamanho do array não é fixo.

Array Unidimensional

O array unidimensional é o mais simples, sua estrutura lógica é uma tabela linear. O array unidimensional pode usar um loop for para exibir os elementos do array, conforme o exemplo a seguir:

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

O resultado da execução do código acima é:

nil
Lua
Tutorial

Como você pode ver, podemos usar índices inteiros para acessar elementos do array, e se o índice conhecido não tiver valor, ele retornará nil.

Nos índices do Lua são representados por 1 como ponto de partida, mas você também pode especificar o início com 0.

Além disso, podemos usar índices de números negativos para arrays:

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

O resultado da execução do código acima é:

-4
-2
0
2
4

Matriz Multidimensional

A matriz multidimensional é uma matriz que contém matrizes ou arrays unidimensionais, onde a chave de índice de um array é correspondida a uma matriz.

A seguir está uma matriz multidimensional de três linhas e três colunas:

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

O resultado da execução do código acima é:

1
2
3
2
4
6
3
6
9

Matriz multidimensional de três linhas e três colunas com diferentes chaves de índice:

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

O resultado da execução do código acima é:

1
2
3
2
4
6
3
6
9

Como você pode ver, nos exemplos acima, o array define valores de índice específicos, o que evita a ocorrência de valores nil e é benéfico para economizar espaço em memória.