詳解Lua中的陣列概念知識

2022-09-21 02:15:10 字數 1714 閱讀 7777

陣列是有序的物件的裝置,它可以是包含含有多個行和列的行或多維陣列的集合的單個二維陣列。

在lua中,陣列是使用索引表與整數實現的。陣列的大小是不固定的,它可以增長基於我們需要受儲存器限制。

一維陣列

一維陣列可以用乙個簡單的表結構來表示,可以初始化,使用乙個簡單的for迴圈讀取。如下例子所示。

複製** **如下:

array =

for i= 0, 2 do

print(array[i])

end當我們執行上面的**之後,將得到下面的輸出。

複製** **如下:

nillua

tutorial

正如在上面的**中看到,當我們試圖訪問索引中是不存在的陣列中的元素,則返回nil。在lua索引通常開始於索引1,但有可能在索引0和小於0,以及建立物件。顯示使用負索引陣列下面我們初始化使用for迴圈陣列。

複製** **如下:

array = {}

for i= -2, 2 do

array[i] = i *2

endfor i = -2,2 do

print(array[i])

end當我們執行上面的**之後,將得到下面的輸出。

複製** **如下:

-4-202

4多維陣列

多維陣列可以用兩種方式來實現。

對於3,3多維陣列如下所示使用陣列的陣列的例子。

複製** **如下:

-- initializing the程式設計客棧 array

array = {}

for i=1,3 do

array[i] = {}

for j=1,3 do

array[i][j] = i*j

endend-- accessing the array

for i=1,3 do

for j=1,3 do

print(array[i][j])

endend當我們執行上面的**之後,將得到下面的輸出。

複製** **如下:

12程式設計客棧32

4636

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

endend-- accessing the array

for row=1,maxrowspcqlhflj do

for col=www.cppcns.com1,maxcolumns do

print(array[row*maxcolumns +col])

end

end當我們執行上面的**之後,將得到下面的輸出。

複製** **如下:12

3246

369正如在上面的例子中看到的,資料是基於索引儲存的。也能夠將元素以稀疏的方式,它是乙個矩陣的工作方式lua的實現。因為它不儲存在lua零值,就可以節省大量的記憶體,在lua中任何特殊的技術相比其他程式語言中使用特殊技術。

本文標題: 詳解lua中的陣列概念知識

本文位址: /jiaoben/lua/125551.html

詳解Lua中的元表概念

有跡象表明,在處理metatables其中包括使用了兩種重要的方法,讓我們先來看看如何設定乙個表作為另乙個元表。它如下所示。複製 如下 mytable mymetatable setmetatable mytable,mymetatable 上面的 可以在乙個單一的行被表示為如下所示。複製 如下 m...

Lua中的環境概念

2014 07 29 分類 lua 閱讀 1834 前言 lua將其所有的全域性變數儲存在乙個常規的table中,這個table稱為 環境 這種組織結構的優點在於,其一,不需要再為全域性變數創造一種新的資料結構,因此簡化了lua的內部實現 另乙個優點是,可以像其他table一樣操作這個table。為...

Lua中陣列的學習

陣列的大小是不固定的 一維陣列的邏輯結構是線性表索引從1開始 array1 for i 1,2 doprint array1 i end 索引可以為負數 array2 for i 1,1 doarray2 i i 2 endfor i 1,1 doprint array2 i end 多維陣列 即陣...