Lua之pairs和ipairs的區別

2021-07-13 01:30:26 字數 1043 閱讀 6813

之前看了其他前輩寫得關於pairs和ipairs的區別,覺得沒能夠很好抓住重點,所以這次因為複習的關係,我自己也寫了乙個。

lua庫為泛型for迴圈提供了幾個迭代器函式:io.lines用於遍歷每行;pairs用於迭代table元素;ipairs用於迭代陣列元素;string.gmatch用於迭代字串中單詞。

ipairs與pairs 的區別:

pairs可以遍歷表中所有的key,並且除了迭代器本身以及遍歷表本身還可以返回nil;

但是ipairs則不能返回nil,只能返回數字0,如果遇到nil則退出。它只能遍歷到表中出現的第乙個不是整數的key。

注意:lua陣列下標時是從1開始的。

days = 

for k,v in

pairs(days) do

print(v)

end--輸出結果為

--a--b

--cfor k,v in

ipairs(days) do

print(v)

end--輸出結果為

--a--b

--c--這時還無法區分pairs和ipairs的區別。

hello =

for k,v in

pairs(hello) do

print(v)

end--輸出結果

--b--a

for k,v in

ipairs(hello) do

print(v)

end--輸出結果

--當key=1時候value就是nil,所以直接跳出迴圈不輸出任何值。

hello =

for k,v in

pairs(hello) do

print(v)

end--輸出結果

--b--a

for k,v in

ipairs(hello) do

print(v)

end--輸出結果

--a--當key=2時候value就是nil,所以直接跳出迴圈不輸出任何值。

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之ipairs與pairs詳解

ipairs與pairs詳解 在說pairs與ipairs之前,先說lua中table的資料結構 1.由乙個 雜湊表與乙個 陣列構成,當插入乙個元素時,如果元素是鍵值對,則將其放入雜湊表中,如果是值則放入陣列中。2.hash表上會有衝突,通過乙個鍊錶的形式組織衝突的元素。接下來看一下ipairs與p...

lua 中pairs 和 ipairs差別

ipairs 和pairs在lua中都是遍歷tbale的函式可是兩者有差別 1.pairs遍歷table中的全部的key vale 而ipairs會依據key的數值從1開始加1遞增遍歷相應的table i 值 pairs能夠遍歷表中全部的key,而且除了迭代器本身以及遍歷表本身還能夠返回nil 可是...