Lua - pairs and ipairs

Lua 內的 ipairs 可用來遍巡處理陣列,如果遍巡到非陣列元素,或是空值的話,遍巡動作即會中止。


所以像下面這樣的程式就不會將所有元素印出。

1
2
3
4
5
6
7
8
local data = {}
data[1] = "Value1"
data[2] = "Value2"
data[4] = "Value4"
data.Key1 = "Value4"
for x, y in ipairs(data) do
print("( " .. x .. ", " .. y .." )")
end


若是使用 pairs,則可遍巡所有元素。

1
2
3
4
5
6
7
8
local data = {}
data[1] = "Value1"
data[2] = "Value2"
data[4] = "Value4"
data.Key1 = "Value4"
for x, y in pairs(data) do
print("( " .. x .. ", " .. y .." )")
end