鍍金池/ 教程/ C/ Lua數(shù)組
Lua邏輯運(yùn)算符
Lua其他運(yùn)算符
Lua協(xié)同程序
Lua break語句
Lua運(yùn)算符
Lua面向?qū)ο?/span>
Lua教程
Lua函數(shù)
Lua數(shù)據(jù)庫/MySQL操作
Lua關(guān)系運(yùn)算符
Lua錯(cuò)誤處理
Lua數(shù)據(jù)類型
Lua嵌套循環(huán)
Lua變量
Lua基本語法
Lua字符串
Lua for循環(huán)
Lua if語句嵌套
Lua運(yùn)算符優(yōu)先級
Lua Web編程
Lua while循環(huán)
Lua開發(fā)環(huán)境
Lua if...else語句
Lua標(biāo)準(zhǔn)庫
Lua游戲編程
Lua if語句
Lua算術(shù)運(yùn)算符
Lua表格
Lua決策
Lua文件I/O
Lua循環(huán)
Lua數(shù)組
Lua元表
Lua repeat...until循環(huán)
Lua迭代器
Lua調(diào)試
Lua模塊
Lua垃圾收集

Lua數(shù)組

數(shù)組是有序的對象的裝置,它可以是包含含有多個(gè)行和列的行或多維陣列的集合的單個(gè)二維數(shù)組。

在Lua中,數(shù)組是使用索引表與整數(shù)實(shí)現(xiàn)的。數(shù)組的大小是不固定的,它可以增長基于我們需要受存儲器限制。

一維數(shù)組

一維數(shù)組可以用一個(gè)簡單的表結(jié)構(gòu)來表示,可以初始化,使用一個(gè)簡單的for循環(huán)讀取。如下例子所示。

array = {"Lua", "Tutorial"}

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

當(dāng)我們運(yùn)行上面的代碼之后,將得到下面的輸出。

nil
Lua
Tutorial

正如在上面的代碼中看到,當(dāng)我們試圖訪問索引中是不存在的數(shù)組中的元素,則返回nil。在Lua索引通常開始于索引1,但有可能在索引0和小于0,以及創(chuàng)建對象。顯示使用負(fù)索引數(shù)組下面我們初始化使用for循環(huán)數(shù)組。

array = {}

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

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

當(dāng)我們運(yùn)行上面的代碼之后,將得到下面的輸出。

-4
-2
0
2
4

多維數(shù)組

多維數(shù)組可以用兩種方式來實(shí)現(xiàn)。

  • 數(shù)組的數(shù)組
  • 一維數(shù)組通過控制索引

對于3,3多維陣列如下所示使用數(shù)組的數(shù)組的例子。

-- Initializing the array
array = {}
for i=1,3 do
   array[i] = {}
      for j=1,3 do
         array[i][j] = i*j
      end
end

-- Accessing the array
for i=1,3 do
   for j=1,3 do
      print(array[i][j])
   end
end

當(dāng)我們運(yùn)行上面的代碼之后,將得到下面的輸出。

1
2
3
2
4
6
3
6
9

對于3,3多維陣列的例子如下所示使用操作索引。

-- Initializing the array
array = {}
maxRows = 3
maxColumns = 3
for row=1,maxRows do
   for col=1,maxColumns do
      array[row*maxColumns +col] = row*col
   end
end

-- Accessing the array
for row=1,maxRows do
   for col=1,maxColumns do
      print(array[row*maxColumns +col])
   end
end

當(dāng)我們運(yùn)行上面的代碼之后,將得到下面的輸出。

1
2
3
2
4
6
3
6
9

正如在上面的例子中看到的,數(shù)據(jù)是基于索引儲存的。也能夠?qū)⒃匾韵∈璧姆绞剑且粋€(gè)矩陣的工作方式lua的實(shí)現(xiàn)。因?yàn)樗槐4嬖贚ua零值,就可以節(jié)省大量的內(nèi)存,在Lua中任何特殊的技術(shù)相比其他編程語言中使用特殊技術(shù)。