詳解Lua中的數(shù)組概念知識(shí)
數(shù)組是有序的對(duì)象的裝置,它可以是包含含有多個(gè)行和列的行或多維陣列的集合的單個(gè)二維數(shù)組。
在Lua中,數(shù)組是使用索引表與整數(shù)實(shí)現(xiàn)的。數(shù)組的大小是不固定的,它可以增長(zhǎng)基于我們需要受存儲(chǔ)器限制。
一維數(shù)組
一維數(shù)組可以用一個(gè)簡(jiǎn)單的表結(jié)構(gòu)來(lái)表示,可以初始化,使用一個(gè)簡(jiǎn)單的for循環(huán)讀取。如下例子所示。
for i= 0, 2 do
print(array[i])
end
當(dāng)我們運(yùn)行上面的代碼之后,將得到下面的輸出。
Lua
Tutorial
正如在上面的代碼中看到,當(dāng)我們?cè)噲D訪問(wèn)索引中是不存在的數(shù)組中的元素,則返回nil。在Lua索引通常開(kāi)始于索引1,但有可能在索引0和小于0,以及創(chuàng)建對(duì)象。顯示使用負(fù)索引數(shù)組下面我們初始化使用for循環(huán)數(shù)組。
for i= -2, 2 do
array[i] = i *2
end
for i = -2,2 do
print(array[i])
end
當(dāng)我們運(yùn)行上面的代碼之后,將得到下面的輸出。
-2
0
2
4
多維數(shù)組
多維數(shù)組可以用兩種方式來(lái)實(shí)現(xiàn)。
- 數(shù)組的數(shù)組
- 一維數(shù)組通過(guò)控制索引
對(duì)于3,3多維陣列如下所示使用數(shù)組的數(shù)組的例子。
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)行上面的代碼之后,將得到下面的輸出。
2
3
2
4
6
3
6
9
對(duì)于3,3多維陣列的例子如下所示使用操作索引。
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)行上面的代碼之后,將得到下面的輸出。
2
3
2
4
6
3
6
9
正如在上面的例子中看到的,數(shù)據(jù)是基于索引儲(chǔ)存的。也能夠?qū)⒃匾韵∈璧姆绞?,它是一個(gè)矩陣的工作方式lua的實(shí)現(xiàn)。因?yàn)樗槐4嬖贚ua零值,就可以節(jié)省大量的內(nèi)存,在Lua中任何特殊的技術(shù)相比其他編程語(yǔ)言中使用特殊技術(shù)。
相關(guān)文章
Lua中計(jì)算、執(zhí)行字符串中Lua代碼的方法
這篇文章主要介紹了Lua中計(jì)算、執(zhí)行字符串中Lua代碼的方法,類(lèi)似JavaScript中eval函數(shù)的功能,在Lua中也可以實(shí)現(xiàn),需要的朋友可以參考下2015-05-05Lua中的迭代器和泛型for學(xué)習(xí)總結(jié)
這篇文章主要介紹了Lua中的迭代器和泛型for學(xué)習(xí)總結(jié),本文講解了迭代器和泛型for的基礎(chǔ)知識(shí)、泛型for的語(yǔ)義、無(wú)狀態(tài)的迭代器等內(nèi)容,需要的朋友可以參考下2014-09-09Lua檢測(cè)數(shù)組(tabble)中是否包含某個(gè)值
這篇文章主要介紹了Lua檢測(cè)數(shù)組(tabble)中是否包含某個(gè)值以及l(fā)ua 判斷一個(gè)字符是否存在某個(gè)數(shù)組兩個(gè)方法,需要的朋友可以參考下2015-05-05Lua返回一個(gè)Closures函數(shù)實(shí)例
這篇文章主要介紹了Lua返回一個(gè)Closures函數(shù)實(shí)例,本文直接給出代碼實(shí)例,需要的朋友可以參考下2015-04-04Lua編程示例(三):稀疏表、雙端隊(duì)列、格式化輸出、表和循環(huán)表的格式化輸出
這篇文章主要介紹了Lua編程示例(三):稀疏表、雙端隊(duì)列、格式化輸出、表和循環(huán)表的格式化輸出,本文直接給出實(shí)例代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下2015-07-07Lua中實(shí)現(xiàn)面向?qū)ο蟮囊环N漂亮解決方案
這篇文章主要介紹了Lua中實(shí)現(xiàn)面向?qū)ο蟮囊环N漂亮解決方案,本文給出實(shí)現(xiàn)代碼、使用方法及代碼分析,需要的朋友可以參考下2015-01-01