在lua中有提供預設的迭代函式:pairs 和 ipairs,我們通常使用這兩個迭代函式來進行table的遍歷,那麼這兩個迭代函式的區別是什麼?
首先,table儲存的值是連續的時候,兩個是沒有什麼區別的,如下:
tab1 =
for k,v in ipairs(tab1) do --使用ipairs進行遍歷
print(v)
endfor k,v in pairs(tab1) do --使用pairs進行遍歷
print(v)
end
執行結果:
但是當table裡面的值不是連續的時候,ipairs只要是遇見nil就會跳出迴圈,而pairs會將table裡面的數值全部遍歷完成為止。
tab2 =
print("this is ipairs")
for k,v in ipairs(tab2) do
print(v)
endprint("this is pairs")
for k,v in pairs(tab2) do
pri
執行結果:
由執行結果可知:ipairs沒有遍歷出tab中的資料,是因為在tab中,只有索引是:2,4,6才有對應的值,當ipairs從索引是:1的地方開始遍歷,發現此時裡面是:nil,ipairs就會結束掉遍歷,所以此時使用ipairs遍歷沒有任何的資料
但是,此時使用pairs遍歷,就會將tab裡面的資料全部遍歷出來。
以上就是lua裡面pairs和ipairs的區別。
lua學習筆記12 pairs和ipairs
在lua中,pairs和iparis都可以用於遍歷數字,他們也是有區別的,而且區別還挺大,看下面幾個例子 local tabfiles for k,v in ipairs tabfiles do print k,v end ipairs tabfiles 遍歷時,當key 1時候value就是nil...
lua 中pairs 和 ipairs差別
ipairs 和pairs在lua中都是遍歷tbale的函式可是兩者有差別 1.pairs遍歷table中的全部的key vale 而ipairs會依據key的數值從1開始加1遞增遍歷相應的table i 值 pairs能夠遍歷表中全部的key,而且除了迭代器本身以及遍歷表本身還能夠返回nil 可是...
LUA中ipairs和pairs的區別
在lua中,table的遍歷可以通過ipairs或pairs來完成,但是兩者的用法並非完全一樣的。ipairs只遍歷索引為數字的key value對,從下標1開始遞增 而pairs則會無序遍歷table中所有元素,字串索引 數字索引 函式等。因此,如果乙個table是乙個純陣列,那麼兩者遍歷的結果是...