# Lua 數組
數組,就是相同數據類型的元素按一定順序排列的集合,可以是一維數組和多維數組。
Lua 數組的索引鍵值可以使用整數表示,數組的大小不是固定的。
### 一維數組
一維數組是最簡單的數組,其邏輯結構是線性表。一維數組可以用for循環出數組中的元素,如下實例:
~~~
~~~
array?=?{"Lua",?"Tutorial"}
for?i=?0,?2?do
???print(array[i])
end
~~~
~~~
以上代碼執行輸出結果為:
~~~
~~~
nil
Lua
Tutorial
~~~
~~~
正如你所看到的,我們可以使用整數索引來訪問數組元素,如果知道的索引沒有值則返回nil。
在 Lua 索引值是以 1 為起始,但你也可以指定 0 開始。
除此外我們還可以以負數為數組索引值:
~~~
~~~
array?=?{}
for?i=?-2,?2?do
???array[i]?=?i?*2
end
for?i?=?-2,2?do
???print(array[i])
end
~~~
~~~
以上代碼執行輸出結果為:
~~~
~~~
-4
-2
0
2
4
~~~
~~~
### 多維數組
多維數組即數組中包含數組或一維數組的索引鍵對應一個數組。
以下是一個三行三列的陣列多維數組:
~~~
~~~
--?初始化數組
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
~~~
~~~
以上代碼執行輸出結果為:
~~~
~~~
1
2
3
2
4
6
3
6
9
~~~
~~~
不同索引鍵的三行三列陣列多維數組:
~~~
~~~
--?初始化數組
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
~~~
~~~
以上代碼執行輸出結果為:
~~~
~~~
1
2
3
2
4
6
3
6
9
~~~
~~~
正如你所看到的,以上的實例中,數組設定了指定的索引值,這樣可以避免出現 nil 值,有利于節省內存空間。
- Lua 簡介
- Lua 環境安裝
- Lua 數據類型
- Lua 變量
- Lua 循環
- Lua while 循環
- Lua for 循環
- Lua repeat...until 循環
- Lua 循環嵌套
- Lua break 語句
- Lua 流程控制
- Lua if 語句
- Lua if...else 語句
- Lua if 嵌套語句
- Lua 函數
- Lua 運算符
- Lua 字符串
- Lua 數組
- Lua 迭代器
- Lua table(表)
- Lua 模塊與包
- Lua 元表(Metatable)
- Lua 協同程序(coroutine)
- Lua 文件 I/O
- Lua 錯誤處理
- Lua 調試(Debug)
- Lua 垃圾回收
- Lua 面向對象
- Lua 數據庫訪問
- CoverPage