Lua 數(shù)組

2022-01-29 10:32 更新

數(shù)組,就是相同數(shù)據(jù)類型的元素按一定順序排列的集合,可以是一維數(shù)組和多維數(shù)組。

Lua 數(shù)組的索引鍵值可以使用整數(shù)表示,數(shù)組的大小不是固定的。


一維數(shù)組

一維數(shù)組是最簡單的數(shù)組,其邏輯結(jié)構(gòu)是線性表。一維數(shù)組可以用for循環(huán)出數(shù)組中的元素,如下實(shí)例:

array = {"Lua", "Tutorial"}

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

以上代碼執(zhí)行輸出結(jié)果為:

nil
Lua
Tutorial

正如你所看到的,我們可以使用整數(shù)索引來訪問數(shù)組元素,如果知道的索引沒有值則返回nil。

在 Lua 索引值是以 1 為起始,但你也可以指定 0 開始。

除此外我們還可以以負(fù)數(shù)為數(shù)組索引值:

array = {}

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

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

以上代碼執(zhí)行輸出結(jié)果為:

-4
-2
0
2
4

多維數(shù)組

多維數(shù)組即數(shù)組中包含數(shù)組或一維數(shù)組的索引鍵對(duì)應(yīng)一個(gè)數(shù)組。

以下是一個(gè)三行三列的陣列多維數(shù)組:

-- 初始化數(shù)組
array = {}
for i=1,3 do
   array[i] = {}
      for j=1,3 do
         array[i][j] = i*j
      end
end

-- 訪問數(shù)組
for i=1,3 do
   for j=1,3 do
      print(array[i][j])
   end
end

以上代碼執(zhí)行輸出結(jié)果為:

1
2
3
2
4
6
3
6
9

不同索引鍵的三行三列陣列多維數(shù)組:

-- 初始化數(shù)組
array = {}
maxRows = 3
maxColumns = 3
for row=1,maxRows do
   for col=1,maxColumns do
      array[row*maxColumns +col] = row*col
   end
end

-- 訪問數(shù)組
for row=1,maxRows do
   for col=1,maxColumns do
      print(array[row*maxColumns +col])
   end
end

以上代碼執(zhí)行輸出結(jié)果為:

1
2
3
2
4
6
3
6
9

正如你所看到的,以上的實(shí)例中,數(shù)組設(shè)定了指定的索引值,這樣可以避免出現(xiàn) nil 值,有利于節(jié)省內(nèi)存空間。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)