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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP