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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Lua中,泛型for循环遍历table时,ipairs和pairs的区别

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

根據table型變量key是否為連續數字,如果是則稱為數組型table,如果不是則稱為非數組型table.

事實勝于雄辯,接下來通過實驗來區分兩組迭代器的區別.

首先給出pairs和ipairs在數組型table和非數組型table中的遍歷效果:? ?

local testTable1 = {"a","b","c","d","e"}local testTable2 = {[1] = "a",["x"] = "b",["y"] = "c",[2] = "d",[8] = "e"}print("pairs output arrayTable:")for i,v in pairs(testTable1) doprint(i,v)endprint("-----------------------------")print("ipairs output arrayTable:")for i,v in ipairs(testTable1) doprint(i,v)endprint("-----------------------------")print("pairs output not arrayTable:") for i,v in pairs(testTable2) doprint(i,v)endprint("-----------------------------")print("ipairs output not arrayTable:")for i,v in ipairs(testTable2) doprint(i,v)end


總結:

遍歷數組型(連續數字下標)table時,pairs和ipairs效果相同

遍歷非數組型(數字字母混合,或者非連續數字)table時:

pairs:先輸出數字類型key的鍵值(按照key的出現順序),再輸出字母類型key的鍵值(無序)

ipairs:從第一個數字key開始,依次輸出所有的key+1的鍵值,遇到字母下標并不會結束遍歷,只是不輸出而已.

從效果上看,pairs完全包括了ipairs的能力

通常遍歷table的需求是:不考慮table是數組型table還是非數組型table,遍歷table中的鍵值

那么這種情況全部使用pairs即可遍歷table.
————————————————

原文鏈接:https://blog.csdn.net/ellis1970/article/details/80693314

總結

以上是生活随笔為你收集整理的Lua中,泛型for循环遍历table时,ipairs和pairs的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

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