Lua 中 pairs() 和 ipairs() 的區別是什麼?


在 Lua 中,當我們想要使用 for 迴圈迭代給定表時,我們會同時使用 **pairs()** 和 **ipairs()** 函式。這兩個函式都返回鍵值對,其中鍵是元素的索引,值是儲存在該索引表中的元素。

雖然兩者有一些相似之處,但瞭解它們之間一些顯著的區別也很重要。

**pairs()** 和 **ipairs()** 函式之間的第一個區別是,**pairs()** 函式不保持鍵的順序,而 **ipairs()** 函式則保持鍵的順序。

示例

考慮以下示例:

 線上演示

u={}
u[1]="a"
u[3]="b"
u[2]="c"
u[4]="d"
u["aa"] = "zz"
u[7] = "e"
for key,value in ipairs(u) do print(key,value) end
print(“---”)
for key,value in pairs(u) do print(key,value) end

在上面的示例中,**ipairs()** 函式將按數字順序列印鍵的順序,而 **pairs()** 函式不保證這一點。

此外,如果我們更仔細地檢視該示例,我們將看到第二個區別,那就是 ipairs() 函式不返回表中存在的非數字鍵。

輸出

請參考輸出結果。

1   a
2   c
3   b
4   d
---
1   a
2   c
3   b
4   d
7   e
aa zz

更新於: 2021-07-19

10K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.