Tatasusunan Lua


Tatasusunan ialah himpunan unsur-unsur jenis data yang sama yang disusun dalam susunan tertentu Ia boleh menjadi tatasusunan satu dimensi atau tatasusunan berbilang dimensi.

Nilai kunci indeks tatasusunan Lua boleh diwakili oleh integer dan saiz tatasusunan tidak tetap.


Tatasusunan satu dimensi

Tatasusunan satu dimensi ialah tatasusunan yang paling mudah, dan struktur logiknya ialah jadual linear. Tatasusunan satu dimensi boleh digunakan untuk gelung untuk menggelungkan keluar elemen dalam tatasusunan, seperti yang ditunjukkan dalam contoh berikut:

array = {"Lua", "Tutorial"}

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

Hasil output untuk melaksanakan kod di atas ialah:

nil
Lua
Tutorial


Seperti yang anda lihat Ya, kami boleh mengakses elemen tatasusunan menggunakan indeks integer, mengembalikan sifar jika indeks yang diketahui tidak mempunyai nilai.


Dalam nilai indeks Lua bermula dengan 1, tetapi anda juga boleh menentukan 0 sebagai titik permulaan.

Selain itu, kita juga boleh menggunakan nombor negatif sebagai nilai indeks tatasusunan:

array = {}

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

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

Hasil keluaran melaksanakan kod di atas ialah:

-4
-2
0
2
4

tatasusunan berbilang dimensi

Tatasusunan berbilang dimensi bermaksud tatasusunan mengandungi tatasusunan atau kunci indeks tatasusunan satu dimensi sepadan dengan tatasusunan.

Berikut ialah tatasusunan berbilang dimensi tatasusunan tiga baris tiga lajur:

-- 初始化数组
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

Output pelaksanaan kod di atas ialah:

1
2
3
2
4
6
3
6
9

Tiga baris, tiga tatasusunan lajur tatasusunan berbilang dimensi dengan kekunci indeks yang berbeza :

-- 初始化数组
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

Hasil keluaran melaksanakan kod di atas ialah:

1
2
3
2
4
6
3
6
9

Seperti yang anda lihat, dalam contoh di atas, tatasusunan ditetapkan kepada nilai indeks yang ditentukan, yang boleh mengelakkan nilai nil Membantu menjimatkan ruang memori.