ipairs 在迭代過程中是會直接跳過所有手動設定key值的變數。pairs不會跳過手動設定key值的變數。
例項
tab =for i,v in pairs(tab) do
print(i,v)
end
輸出
11223da cd
例項
tab =for i,v in ipairs(tab) do
print(i,v)
end
輸出
11223d
如果遇到手動設定的key並且值為nil,那麼pairs和ipairs都會選擇跳過該元素
例如:
tab =for i,v in pairs(tab) do
print(i,v)
end
輸出
11223 d
例項
tab =for i,v in ipairs(tab) do
print(i,v)
end
輸出
11223 d
ipairs在迭代過程中如果遇到nil時會直接停止。pairs會選擇跳過。
例項tab =
for i,v in pairs(tab) do
print(i,v)
end輸出
1 12 2
4 d例項
tab =for i,v in ipairs(tab) do
print(i,v)
end
輸出1 1
2 2for 迴圈中,迴圈的索引 i 為外部索引,修改迴圈語句中的內部索引 i,不會影響迴圈次數
for i=1,10doi = 10
print(
"one time,i:
"..i)
end
仍然迴圈 10 次,只是 i 的值被修改了
one time,i:10one time,i:
10one time,i:
10one time,i:
10one time,i:
10one time,i:
10one time,i:
10one time,i:
10one time,i:
10one time,i:
10
pairs能迭代所有鍵值對。遇到nil不會停止,會直接跳過
tab =for i,v in pairs(tab) do
print(i,v)
end
輸出
11224dv
5
ipairs只會迭代鍵為數字的鍵值對,遇到nil會停止
tab =for i,v in ipairs(tab) do
print(i,v)
end
輸出
11223 d
總結
共同點:
遇到手動設定的值為nil的元素會跳過,如, tab =
不同點:
pairs遇到nil會跳過,ipairs遇到nil會停止 , 如,tab =
pairs能夠輸出手動設定的元素,ipairs只能輸出鍵值為整數的元素,如,tab =
LUA中ipairs和pairs的區別
在lua中,table的遍歷可以通過ipairs或pairs來完成,但是兩者的用法並非完全一樣的。ipairs只遍歷索引為數字的key value對,從下標1開始遞增 而pairs則會無序遍歷table中所有元素,字串索引 數字索引 函式等。因此,如果乙個table是乙個純陣列,那麼兩者遍歷的結果是...
Lua之pairs和ipairs的區別
之前看了其他前輩寫得關於pairs和ipairs的區別,覺得沒能夠很好抓住重點,所以這次因為複習的關係,我自己也寫了乙個。lua庫為泛型for迴圈提供了幾個迭代器函式 io.lines用於遍歷每行 pairs用於迭代table元素 ipairs用於迭代陣列元素 string.gmatch用於迭代字串...
Lua中pairs和ipairs的區別
在lua中有提供預設的迭代函式 pairs 和 ipairs,我們通常使用這兩個迭代函式來進行table的遍歷,那麼這兩個迭代函式的區別是什麼?首先,table儲存的值是連續的時候,兩個是沒有什麼區別的,如下 tab1 for k,v in ipairs tab1 do 使用ipairs進行遍歷 p...