LUA中ipairs和pairs的區別

2021-06-22 23:09:10 字數 749 閱讀 6231

在lua中,table的遍歷可以通過ipairs或pairs來完成,但是兩者的用法並非完全一樣的。

ipairs只遍歷索引為數字的key-value對,從下標1開始遞增;而pairs則會無序遍歷table中所有元素,字串索引、數字索引、函式等。因此,如果乙個table是乙個純陣列,那麼兩者遍歷的結果是一樣的。

例子1

local t1 =

for k, v in ipairs(t1) do

print(k , v)

endfor k, v in pairs(t1) do

print(k , v)

endipairs和pairs的輸出結果都是:

1 3

2 7

3 11

4 9

例子2

local t2 =

for k, v in ipairs(t2) do

print(k , v)

endfor k, v in pairs(t2) do

print(k , v)

endipairs的輸出結果:

1 1

2 23 4

pairs的輸出結果:

1 1

2 2

3 4abc 5

例子的輸出結果驗證了我們的說法。

範性for語義以及pair和ipairs的區別

詳情參考 lua手冊 1.範性for語義 在了解pair和ipair前先簡單了解下lua中的for迴圈,這裡只闡述範性for迴圈的語義,範性 for 在自己內部儲存迭代函式,實際上它儲存三個 值 迭代函式 狀態常量 控制變數。for的正規化如下 for indo end是以乙個或多個逗號分隔的變數名...

lua 中pairs 和 ipairs差別

ipairs 和pairs在lua中都是遍歷tbale的函式可是兩者有差別 1.pairs遍歷table中的全部的key vale 而ipairs會依據key的數值從1開始加1遞增遍歷相應的table i 值 pairs能夠遍歷表中全部的key,而且除了迭代器本身以及遍歷表本身還能夠返回nil 可是...

Lua中pairs和ipairs的區別

在lua中有提供預設的迭代函式 pairs 和 ipairs,我們通常使用這兩個迭代函式來進行table的遍歷,那麼這兩個迭代函式的區別是什麼?首先,table儲存的值是連續的時候,兩個是沒有什麼區別的,如下 tab1 for k,v in ipairs tab1 do 使用ipairs進行遍歷 p...