在lua中,table的遍歷可以通過ipairs或pairs來完成,但是兩者的用法並非完全一樣的。
ipairs只遍歷索引為數字的key-value對,從下標1開始遞增;而pairs則會無序遍歷table中所有元素,字串索引、數字索引、函式等。因此,如果乙個table是乙個純陣列,那麼兩者遍歷的結果是一樣的。
例子1
local t1 =
for k, v in ipairs(t1) do
print(k , v)
endfor k, v in pairs(t1) do
print(k , v)
endipairs和pairs的輸出結果都是:
1 3
2 7
3 11
4 9
例子2
local t2 =
for k, v in ipairs(t2) do
print(k , v)
endfor k, v in pairs(t2) do
print(k , v)
endipairs的輸出結果:
1 1
2 23 4
pairs的輸出結果:
1 1
2 2
3 4abc 5
例子的輸出結果驗證了我們的說法。
範性for語義以及pair和ipairs的區別
詳情參考 lua手冊 1.範性for語義 在了解pair和ipair前先簡單了解下lua中的for迴圈,這裡只闡述範性for迴圈的語義,範性 for 在自己內部儲存迭代函式,實際上它儲存三個 值 迭代函式 狀態常量 控制變數。for的正規化如下 for indo end是以乙個或多個逗號分隔的變數名...
lua 中pairs 和 ipairs差別
ipairs 和pairs在lua中都是遍歷tbale的函式可是兩者有差別 1.pairs遍歷table中的全部的key vale 而ipairs會依據key的數值從1開始加1遞增遍歷相應的table i 值 pairs能夠遍歷表中全部的key,而且除了迭代器本身以及遍歷表本身還能夠返回nil 可是...
Lua中pairs和ipairs的區別
在lua中有提供預設的迭代函式 pairs 和 ipairs,我們通常使用這兩個迭代函式來進行table的遍歷,那麼這兩個迭代函式的區別是什麼?首先,table儲存的值是連續的時候,兩個是沒有什麼區別的,如下 tab1 for k,v in ipairs tab1 do 使用ipairs進行遍歷 p...