之前看了其他前輩寫得關於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 可是...