日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pairs和ipairs的区别

發布時間:2023/12/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pairs和ipairs的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在lua中ipairs 和pairs均可以用來遍歷集合,但是兩者有區別;

同:都是能遍歷集合(表、數組),兩者均優先按順序輸出沒有key的值;

異:對于有key的集合:
ipairs從第一個數字key開始,依次輸出所有的key+1的鍵值,遇到字母下標并不會結束遍歷,只是不輸出而已,如果遇到nil則退出;
pairs無序輸出字母類型key或者數字類型key的鍵值,遇到nil不輸出,但不會停止遍歷;

例子1:

table = { [1] = "test3", [2] = "val1" , [5] = "val2", [4] = "val4" } print("-----------ipairs----------------") for k,v in ipairs(table) doprint(k,v) end print("-----------pairs----------------") for k,v in pairs(table) doprint(k,v) end

輸出

-----------ipairs---------------- 1 test3 2 val1 -----------pairs---------------- 4 val4 1 test3 2 val1 5 val2

結論:
1、ipairs會按照key的順序輸出數據,遇到不連續的數據停止輸出;
2、pairs會無序輸出所有數據;

例子2:

table = { [3] = "test3", ["test"] = "val1", "val3" , [4] = "val2", "val4" } print("-----------ipairs----------------") for k,v in ipairs(table) doprint(k,v) end print("-----------pairs----------------") for k,v in pairs(table) doprint(k,v) end

輸出

-----------ipairs---------------- 1 val3 2 val4 3 test3 4 val2 -----------pairs---------------- 1 val3 2 val4 4 val2 test val1 3 test3

結論:
1、pairs和ipairs均優先輸出沒有key的value;
2、pairs會輸出所有的數據,不帶key的值按順序輸出,帶key的值無序輸出;
3、ipairs會跳過字符串的key,按順序輸出數字型key的值;

例子3

table = { [6] = "test3", ["test"] = "val1", "val3" , [11] = "val2", nil, "val4" } print("-----------ipairs----------------") for k,v in ipairs(table) doprint(k,v) end print("-----------pairs----------------") for k,v in pairs(table) doprint(k,v) end

輸出

-----------ipairs---------------- 1 val3 -----------pairs---------------- 1 val3 3 val4 11 val2 6 test3 test val1

結論:
1、ipairs遇到nil會停止輸出;
2、pairs遇到nil不會停止輸出;

總結

以上是生活随笔為你收集整理的pairs和ipairs的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。