Latest web development tutorials

Lua массив

Массив представляет собой набор того же типа элементов данных в определенном порядке, который может быть одномерные массивы и многомерные массивы.

значения индекса ключа массив Lua может быть использован в виде целого числа, то размер массива не фиксируется.


Одномерный массив

Одномерный массив представляет собой массив из самых простых, логическая структура представляет собой линейную форму. Одномерный массив может использоваться для элементов цикла в массиве, следующие примеры:

array = {"Lua", "Tutorial"}

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

Выход выше код выполняется:

nil
Lua
Tutorial

Как вы можете видеть, мы можем использовать целочисленный индекс для доступа к элементам массива, если вы знаете, нет значение индекса возвращается ноль.

В Lua значения индекса 1 старт, но вы можете также указать 0.

Кроме того, мы также может быть отрицательное значение индекса массива:

array = {}

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

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

Выход выше код выполняется:

-4
-2
0
2
4

Многомерные Массивы

Многомерный массив, который представляет собой массив, который содержит массив ключа индекса или одномерный массив, соответствующий массив.

Вот это массив из трех строк и трех столбцов в многомерном массиве:

-- 初始化数组
array = {}
for i=1,3 do
   array[i] = {}
      for j=1,3 do
         array[i][j] = i*j
      end
end

-- 访问数组
for i=1,3 do
   for j=1,3 do
      print(array[i][j])
   end
end

Выход выше код выполняется:

1
2
3
2
4
6
3
6
9

Три ряда трех массивов и многомерные массивы различных ключей индекса:

-- 初始化数组
array = {}
maxRows = 3
maxColumns = 3
for row=1,maxRows do
   for col=1,maxColumns do
      array[row*maxColumns +col] = row*col
   end
end

-- 访问数组
for row=1,maxRows do
   for col=1,maxColumns do
      print(array[row*maxColumns +col])
   end
end

Выход выше код выполняется:

1
2
3
2
4
6
3
6
9

Как вы можете видеть, приведенные выше примеры, индекс массива устанавливается на заданное значение, так что можно избежать нулевой стоимости, поможет сэкономить пространство памяти.