青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 132  文章 - 51  trackbacks - 0
<2014年3月>
2324252627281
2345678
9101112131415
16171819202122
23242526272829
303112345

常用鏈接

留言簿(7)

隨筆分類

隨筆檔案

文章分類

文章檔案

cocos2d-x

OGRE

OPenGL

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

標準庫提供了集中迭代器,包括迭代文件每行的(io.lines),迭代table元素的(pairs),迭代數組元素的(ipairs),迭代字符串中單詞的 

(string.gmatch)等等。LUA手冊中對與pairs,ipairs解釋如下:

ipairs (t)

Returns three values: an iterator function, the table t, and 0, so that the construction

for i,v in ipairs(t) do body end

will iterate over the pairs (1,t[1]), (2,t[2]), ···, up to the first integer key absent from the table.

 

 

 

 

pairs (t)

Returns three values: the next function, the table t, and nil, so that the construction

for k,v in pairs(t) do body end

will iterate over all key–value pairs of table t.

See function next for the caveats of modifying the table during its traversal.

 

這樣就可以看出  ipairs以及pairs 的不同。

 

pairs可以遍歷表中所有的key,并且除了迭代器本身以及遍歷表本身還可以返回nil;

 

但是ipairs則不能返回nil,只能返回數字0,如果遇到nil則退出。它只能遍歷到表中出現的第一個不是整數的key

 


下面舉個例子吧!

 

 eg:

local tabFiles = {

[3] = "test2",

[6] = "test3",

[4] = "test1"

}

 

for k, v in ipairs(tabFiles) do

print(k, v)

end

 

 

猜測它的輸出結果是什么呢?

 

根據剛才的分析,它在 ipairs(tabFiles) 遍歷中,當key=1時候value就是nil,所以直接跳出循環不輸出任何值。

 

>lua -e "io.stdout:setvbuf 'no'" "Test.lua"

>Exit code: 0

 

那么,如果是

for k, v in pairs(tabFiles) do

print(k, v)

end

則會輸出所有 :
>lua -e "io.stdout:setvbuf 'no'" "Test.lua" 
3 test2
6 test3
4 test1
>Exit code: 0
現在改變一下表內容,
local tabFiles = {
[1] = "test1",
[6] = "test2",
[4] = "test3"
}
for k, v in ipairs(tabFiles) do
print(k, v)
end
現在的輸出結果顯而易見就是key=1時的value值test1

 >lua -e "io.stdout:setvbuf 'no'" "Test.lua" 

1 test1

>Exit code: 0 

--[示例1.]--
local tt 
=
{
    [
1= "test3",
    [
4= "test4",
    [
5= "test5"
}


for i,v in pairs(tt) do        -- 輸出 "test4" "test3" "test5"
    print( tt[i] )
end

for i,v in ipairs(tt) do    -- 輸出 "test3" k=2時斷開
    print( tt[i] )
end





-- [[示例2.]] --
tbl 
= {"alpha""beta", [3= "uno", ["two"= "dos"}

for i,v in ipairs(tbl) do    --輸出前三個
    print( tbl[i] )
end

for i,v in pairs(tbl) do    --全部輸出
    print( tbl[i] )
end




posted on 2011-12-16 08:43 風輕云淡 閱讀(20948) 評論(3)  編輯 收藏 引用 所屬分類: LUA

FeedBack:
# re: lua 中pairs 和 ipairs區別[未登錄] 2014-03-28 16:31 kyle
英語不好就別誤人子弟了

---------------------------Yours-----------
pairs可以遍歷表中所有的key,并且除了迭代器本身以及遍歷表本身還可以返回nil;
但是ipairs則不能返回nil,只能返回數字0,如果遇到nil則退出。它只能遍歷到表中出現的第一個不是整數的key

--------------------------Mine------------
pairs遍歷表中全部key,value
ipairs從下標為1開始遍歷,然后下標累加1,如果某個下標元素不存在就終止遍歷。這就導致如果下標不連續或者不是從1開始的表就會中斷或者遍歷不到元素。  回復  更多評論
  
# re: lua 中pairs 和 ipairs區別 2015-08-01 13:15 damnimgood
感謝分享 獲益了  回復  更多評論
  
# re: lua 中pairs 和 ipairs區別 2015-09-04 22:32 Rming
@kyle

謝謝分享  回復  更多評論
  

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美日韩亚洲一区二区三区四区| 久久久噜噜噜久噜久久| 国产精品国产三级国产专播精品人 | 亚洲国产毛片完整版 | 欧美麻豆久久久久久中文| 欧美va亚洲va国产综合| 欧美精品九九99久久| 欧美性生交xxxxx久久久| 欧美日韩亚洲视频一区| 国产精品自在在线| 亚洲国产婷婷综合在线精品| 亚洲国产91精品在线观看| 亚洲视频电影图片偷拍一区| 久久不射网站| 亚洲人在线视频| 欧美在线播放一区| 欧美高清在线一区| 久久久久久久综合| 欧美午夜欧美| 最新成人av在线| 欧美色综合网| 久久久www成人免费无遮挡大片| 米奇777在线欧美播放| 国产精品久久久久av免费| 国模叶桐国产精品一区| 一本色道久久综合亚洲精品高清 | 99这里只有精品| 久久精品系列| 中国亚洲黄色| 欧美激情第1页| 韩国在线视频一区| 亚洲午夜国产成人av电影男同| 蜜臀久久久99精品久久久久久| 妖精视频成人观看www| 免费精品99久久国产综合精品| 国产欧美一区二区精品仙草咪| 99国产精品一区| 久久女同互慰一区二区三区| 亚洲网站在线观看| 欧美激情在线有限公司| 在线观看视频一区二区欧美日韩| 午夜精品免费| 这里只有视频精品| 欧美激情中文字幕一区二区| 亚洲国产黄色片| 久久蜜桃资源一区二区老牛 | 久久超碰97中文字幕| 亚洲精品影院在线观看| 蜜桃久久精品一区二区| 影音先锋另类| 久久久另类综合| 午夜在线精品偷拍| 国产农村妇女毛片精品久久莱园子 | 久久久久成人网| 亚洲在线免费| 国产精品一级二级三级| 亚洲综合导航| 在线视频中文亚洲| 国产精品第13页| 亚洲午夜久久久久久久久电影院 | 欧美一区2区三区4区公司二百| 亚洲激情另类| 欧美成人亚洲成人| 亚洲美女中文字幕| 日韩视频免费观看高清完整版| 欧美美女视频| 亚洲免费一区二区| 亚洲天堂av在线免费| 国产精品一区免费视频| 欧美专区在线观看一区| 久久精品国产亚洲一区二区| 一区精品在线| 亚洲黄色尤物视频| 欧美日韩精品一本二本三本| 亚洲女与黑人做爰| 欧美一级二区| 亚洲国产欧美一区| 日韩一级片网址| 国产美女精品人人做人人爽| 久久免费精品日本久久中文字幕| 久久天天躁夜夜躁狠狠躁2022| 亚洲乱码国产乱码精品精| 日韩视频专区| 国产一区二区主播在线 | 西瓜成人精品人成网站| 亚洲福利国产精品| 99视频日韩| 韩日欧美一区二区三区| 亚洲三级国产| 国产一区二区三区久久| 亚洲国产欧美在线人成| 国产精品九九| 欧美3dxxxxhd| 国产精品毛片va一区二区三区 | 久久国产精品久久国产精品| 亚洲精品国产欧美| 亚洲专区一二三| 91久久久在线| 香蕉久久夜色精品| 夜夜嗨av一区二区三区网站四季av | 国产伦理一区| 亚洲国产中文字幕在线观看| 国产一区二区av| 99国内精品| 亚洲国产毛片完整版| 亚洲欧美精品一区| 99re6这里只有精品| 久久久精品网| 亚洲男人的天堂在线| 免费看成人av| 久久久久青草大香线综合精品| 欧美日本不卡视频| 欧美激情一区在线观看| 国产亚洲一区精品| 亚洲一区二区精品在线观看| 一本色道婷婷久久欧美| 久久久久久**毛片大全| 欧美一区二区精品久久911| 一区二区久久| 亚洲欧洲精品一区二区三区| 久久精品五月| 久久婷婷av| 国产欧美日韩另类一区| 一本色道久久综合亚洲精品高清 | 亚洲综合激情| 亚洲香蕉伊综合在人在线视看| 你懂的成人av| 欧美aa在线视频| 精品91久久久久| 久久久av毛片精品| 久久久久久一区| 含羞草久久爱69一区| 校园激情久久| 久久精品中文字幕一区| 国产综合网站| 欧美中文字幕久久| 久久综合狠狠| 亚洲国产精品专区久久| 欧美v国产在线一区二区三区| 久久亚洲春色中文字幕久久久| 国内精品久久久久久久影视蜜臀 | 亚洲一区二区高清| 欧美在线免费视频| 国产一区二区三区不卡在线观看 | av成人免费| 欧美视频在线观看免费| 一本色道久久88综合亚洲精品ⅰ| 亚洲一区二区精品视频| 欧美午夜一区二区三区免费大片| 中文av一区特黄| 久久国产欧美| 影音先锋欧美精品| 欧美激情第4页| 亚洲深夜福利视频| 久久精品国产成人| 亚洲国产精品一区| 欧美日韩亚洲一区二区| 午夜亚洲福利在线老司机| 美女91精品| 一本色道婷婷久久欧美| 国产精品网站在线| 久久精品国产欧美亚洲人人爽| 欧美激情一区二区三区在线视频| 亚洲午夜国产成人av电影男同| 国产一区二区黄色| 欧美黑人一区二区三区| 亚洲男人第一网站| 欧美激情在线有限公司| 亚洲欧美日韩国产另类专区| 国产亚洲欧美一区二区三区| 欧美大片第1页| 亚洲欧美一区二区三区极速播放| 蜜臀av性久久久久蜜臀aⅴ四虎| 一区二区三区四区五区精品视频| 国产日韩av在线播放| 欧美国产91| 久久国产婷婷国产香蕉| 日韩视频一区二区| 麻豆久久久9性大片| 国产精品久久久一区二区三区| 欧美一区在线直播| 亚洲美女诱惑| 免费在线观看一区二区| 亚洲一区二区精品在线| 亚洲电影观看| 国产日韩欧美一区二区| 欧美精品少妇一区二区三区| 欧美一区高清| 亚洲一区二区三区视频播放| 最新国产成人在线观看| 久久久精品tv| 午夜久久一区| 亚洲视频axxx| 99天天综合性| 亚洲国产综合在线| 在线免费不卡视频| 国产一区二区精品久久91| 国产精品免费看片| 欧美色另类天堂2015| 欧美高清视频一二三区|