Lua,pairs與ipairs區別

pairs遍歷表中全部key,value

ipairs 這個迭代器只能遍歷所有數組下標的值,這是前提,也是和 pairs 的最根本區別,也就是說如果 ipairs 在迭代過程中是會直接跳過所有手動設定key值的變量。

特別注意一點,和其他多數語言不同的地方是,迭代的下標是從1開始的。

pairs實例:

tab = {1, 2, 3, key1 = nil, key2 = "val2", nil,  "d"}
for k, v in pairs(tab) do
    print(k,v)
end

以上實例結果:

 

ipairs實例:

tab = {1, 2, 3, key1 = nil, key2 = "val2", nil,  "d"}
for k, v in ipairs(tab) do
    print(k,v)
end


tab = {1, 2, 3, key1 = nil, key2 = "val2", "d"}
for k, v in ipairs(tab) do
    print(k,v)
end

以上實例結果:

ps:中間那道槓(-------)是分隔符,插入代碼時不能選擇LUA,選擇了別的語言代替,上面實例代碼中刪除了打印分隔符,如果沒刪除,代碼會變成純白色,可讀性不強。

總結:

1.pairs 能迭代所有鍵值對。

2.ipairs 可以想象成 int+pairs,只會迭代鍵爲數字的鍵值對。

3.ipairs在迭代過程中如果遇到nil時會直接停止。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章