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

隨筆 - 132  文章 - 51  trackbacks - 0
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(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 風輕云淡 閱讀(20934) 評論(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

謝謝分享  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              久久精品国产精品| 国产精品美女主播| 国产精品美女久久福利网站| 国产视频不卡| 99精品欧美一区二区蜜桃免费| 久久综合九九| 久久国产一二区| 国产乱人伦精品一区二区 | 国产午夜久久久久| 亚洲久久在线| 一本到高清视频免费精品| 免费在线视频一区| 亚洲美女av在线播放| 欧美一区=区| 91久久国产综合久久蜜月精品 | 国语自产精品视频在线看| 一本久久综合亚洲鲁鲁| 一区二区三区视频在线观看| 欧美手机在线| 久久久久久久久久久久久9999| 国产欧美一区二区三区国产幕精品 | 国产一区二区毛片| 欧美一区二视频| 99精品国产高清一区二区| 国产亚洲一级高清| 久久综合中文色婷婷| 日韩一区二区高清| 欧美在线视频播放| 亚洲人成网站777色婷婷| 日韩一级二级三级| 夜夜爽99久久国产综合精品女不卡| 亚洲视频在线观看网站| 一色屋精品亚洲香蕉网站| 午夜久久电影网| 亚洲精品在线观看视频| 亚洲自拍都市欧美小说| 亚洲一区二区三区精品视频| 欧美在线一级视频| 99re热这里只有精品免费视频| 香蕉久久精品日日躁夜夜躁| 亚洲欧洲一区二区三区久久| 亚洲自拍偷拍色片视频| 亚洲日产国产精品| 亚洲制服欧美中文字幕中文字幕| 亚洲欧美日韩国产精品| 一本一本久久a久久精品综合麻豆| 欧美中文字幕在线| 亚洲精品中文字| 亚洲精品婷婷| 欧美激情精品| 欧美在线999| 亚洲深夜av| 国产亚洲一区在线| 欧美+亚洲+精品+三区| 欧美深夜福利| 亚洲尤物精选| 久久久久久婷| 亚洲国产美女久久久久| 久久久九九九九| 久久精品免费电影| 在线视频成人| 国产专区欧美专区| 免费观看亚洲视频大全| 欧美韩国在线| av成人免费| 国产自产精品| 国产在线一区二区三区四区| 欧美成va人片在线观看| 亚洲免费网址| 亚洲一区二区av电影| 欧美激情一级片一区二区| 亚洲综合好骚| 亚洲一级在线| 中日韩高清电影网| 国产精品久线观看视频| 欧美国产精品日韩| 欧美黄色aa电影| 欧美激情视频网站| 欧美成人精品一区二区| 久久综合999| 久久综合色一综合色88| 久久久国产视频91| 女生裸体视频一区二区三区| 久久噜噜噜精品国产亚洲综合| 欧美精品久久久久久久| 日韩亚洲欧美在线观看| 亚洲综合视频网| 欧美激情一区| 欧美国产成人精品| 日韩亚洲一区二区| 国产日韩欧美在线播放| 女女同性精品视频| 久久深夜福利免费观看| 亚洲成人在线免费| 精品va天堂亚洲国产| 国产一区清纯| 久久精品国产精品亚洲| 亚洲亚洲精品三区日韩精品在线视频 | 久久av一区二区三区漫画| 亚洲精品在线看| 亚洲国产高潮在线观看| 老**午夜毛片一区二区三区| 欧美成人精品1314www| 国产精品二区三区四区| 国语自产精品视频在线看一大j8| 欧美国产日本| 欧美精品一区二区三区蜜臀| 欧美激情一区二区三区成人| 国产精品激情电影| 亚洲精品乱码久久久久| 久久精品成人| 99re8这里有精品热视频免费| 欧美高清在线精品一区| 欧美激情乱人伦| 亚洲欧美日韩精品久久久| 久久综合久久综合久久综合| 国产精品一区二区在线观看不卡| 亚洲人成在线观看| 亚洲尤物在线| 亚洲精品国产精品国自产观看| 艳妇臀荡乳欲伦亚洲一区| 久久久久久亚洲精品杨幂换脸 | 亚洲成人中文| 国产精品av免费在线观看 | 国产欧美日韩亚洲精品| 亚洲欧美一区二区三区久久| 久久欧美中文字幕| 一本久久综合亚洲鲁鲁| 久久视频在线视频| 久久久免费精品视频| 亚洲精品日日夜夜| 激情综合色丁香一区二区| 一区二区高清| 欧美激情精品久久久久| 久久av最新网址| 亚洲国产精品ⅴa在线观看| 亚洲国产精品va在线看黑人动漫 | 黑人操亚洲美女惩罚| 久久av一区二区三区亚洲| 亚洲另类视频| 欧美午夜片欧美片在线观看| 午夜精品久久| 久久综合成人精品亚洲另类欧美| 亚洲精品小视频| 久久中文字幕一区| 久久婷婷国产综合国色天香| 精品白丝av| 亚洲国产91| 激情成人亚洲| 一区二区三区四区国产| 国内不卡一区二区三区| 亚洲国产二区| 国产欧美日韩亚洲一区二区三区| 嫩草伊人久久精品少妇av杨幂| 国产精品日韩精品欧美精品| 久热精品在线视频| 欧美日韩国产一区精品一区| 亚洲欧美日韩国产成人| 久久免费视频在线| 久久国产视频网站| 国产欧美一区二区白浆黑人| 亚洲国产专区| 亚洲精品在线免费| 在线观看亚洲一区| 久久久精品999| 久久亚洲一区二区| 欧美日韩一区高清| 欧美激情a∨在线视频播放| 国精品一区二区三区| 欧美亚洲视频在线观看| 久久www成人_看片免费不卡| 欧美在线地址| 欧美a级在线| 亚洲视频999| 国产欧美日本一区二区三区| 一区二区三区精品在线| 亚洲大胆av| 欧美不卡视频一区| 亚洲午夜一区二区三区| 久久国产福利国产秒拍| 国产精品久久婷婷六月丁香| 欧美电影在线播放| 永久免费毛片在线播放不卡| 99re8这里有精品热视频免费| 尤物九九久久国产精品的特点| 篠田优中文在线播放第一区| 久久精品亚洲乱码伦伦中文 | 亚洲国产精品ⅴa在线观看 | 亚洲一区二区伦理| 精东粉嫩av免费一区二区三区| 欧美插天视频在线播放| 亚洲国产精品一区二区www| 亚洲精选国产| 亚洲二区三区四区| 亚洲在线中文字幕| 亚洲福利小视频| 国产精品99免视看9| 男人天堂欧美日韩| 欧美激情一区| 久久久久9999亚洲精品|