pairs和ipairs的区别
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                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的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Squeeze-and-Attentio
- 下一篇: python 02 --python从
