lua學習筆記12 pairs和ipairs

2021-06-24 11:34:14 字數 1017 閱讀 3865

在lua中,pairs和iparis都可以用於遍歷數字,他們也是有區別的,而且區別還挺大,看下面幾個例子:

local tabfiles = 

for k, v in ipairs(tabfiles) do

print(k, v)

end

ipairs(tabfiles)遍歷時,當key=1時候value就是nil,所以直接跳出迴圈不輸出任何值。

修改遍歷部分,如下:

for k, v in pairs(tabfiles) do

print(k, v)

end

則有如下輸出:

3 test2

6 test3

4 test1

現在改變一下table的內容:

local tabfiles = 

for k, v in ipairs(tabfiles) do

print(k, v)

end

輸出:

1 test1

因為在k=2時斷開。

如果使用pairs遍歷,將輸出全部內容。

再看這個例子:

tbl = 

for i,v in ipairs(tbl) do --輸出前三個

print( tbl[i] )

endfor i,v in pairs(tbl) do --全部輸出

print( tbl[i] )

end

ipairs遍歷是不能輸出以字母為下表的內容的。

通過上面的例子可以得出,pairs和ipairs的區別大致如下:

pairs()可以遍歷整個table,即包括數字下標及非數字下表部分。

ipairs()函式用於遍歷table中的數字下標部分,而且下標必須從1開始且連續的部分。

歡迎拍磚!!!

Lua學習筆記 3 關於pairs和ipairs

toc 遍歷table local tbtestpairs ntest 2,for k,v in pairs tbtestpairs do print k,v end 結果sztest test tbtest table 000000000033a630 ntest 1 2 按順序便利table l...

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是乙個純陣列,那麼兩者遍歷的結果是...