lua中pairs 和 ipairs 的區別

2022-09-17 00:09:16 字數 822 閱讀 9169

1、table中儲存值的時候,是按照順序儲存的,儲存 k-v 的時候,是按照 k 的雜湊值儲存的。

2、ipairs --- 只能輸出 table 中的值,並且不可輸出nil,遇到 ni l就退出

pairs --- 可以輸出 table 中的值與 k-v ,並且是按照先輸出值,再亂序輸出 k-v 的順序進行輸出,可以輸出 nil

3、以下是結論:

1>單獨的值:兩者的輸出結果一致

2>單獨的 k-v:再細分為  --- k 全部為數字(ipairs一定是需要從1開始,每次遞增1,遇到不連續的k就退出))、k 全部為非數字、k為數字與非數字的混合

3>值與 k-v 的混合: 當陣列索引與數字 k 有衝突的時候,ipairs 不遍歷這個情況的 k-v ,不衝突會遍歷數字 k

4、以下是針對3的部分 ipairs 測試**:

a =
沒有結果輸出!!!因為純數字的 k 不是從 1開始的

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