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

隨筆 - 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 風輕云淡 閱讀(20930) 評論(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>
              亚洲综合精品一区二区| 激情欧美一区二区三区| 亚洲免费电影在线观看| 亚洲国产精品t66y| 欧美亚洲视频在线观看| 欧美午夜电影完整版| 亚洲视频自拍偷拍| 宅男精品导航| 国产日产欧产精品推荐色 | 亚洲国产第一页| 欧美国产亚洲视频| 宅男精品视频| 在线国产精品一区| 久久青草福利网站| 欧美/亚洲一区| 一区二区三区日韩| 亚洲调教视频在线观看| 国产欧美日韩综合一区在线观看| 久久精品国产亚洲一区二区三区| 欧美在线资源| 悠悠资源网久久精品| 亚洲电影毛片| 欧美午夜性色大片在线观看| 欧美在线免费播放| 久久亚洲一区二区| 91久久综合| 中国女人久久久| 尤物99国产成人精品视频| 91久久久久久国产精品| 国产精品视频导航| 欧美阿v一级看视频| 欧美福利在线观看| 欧美在线观看视频一区二区| 久久一区视频| 午夜亚洲视频| 另类春色校园亚洲| 欧美一区二区三区在线| 嫩模写真一区二区三区三州| 羞羞答答国产精品www一本| 久久资源av| 欧美一区二区三区日韩| 欧美精品一区在线发布| 狂野欧美激情性xxxx欧美| 欧美日韩在线播放三区| 麻豆久久婷婷| 国产视频亚洲| 一本色道久久综合亚洲精品不| 久久综合给合| 亚洲欧美国产高清| 亚洲国产99精品国自产| 久久男人av资源网站| 亚洲一区二区三区涩| 久久久精品2019中文字幕神马| 亚洲精品视频在线观看免费| 亚洲在线国产日韩欧美| 日韩一级大片| 久久麻豆一区二区| 亚洲欧美国产视频| 欧美日韩国产综合视频在线| 欧美大片一区二区| 国产日韩欧美综合精品| 亚洲欧美日韩国产一区二区| 亚洲三级免费观看| 美女91精品| 久久久精品动漫| 国产精品一二三四区| 亚洲免费一级电影| 99视频精品免费观看| a91a精品视频在线观看| 欧美mv日韩mv国产网站| 亚洲第一区色| 亚洲欧洲精品一区| 嫩草成人www欧美| 免费观看亚洲视频大全| 亚洲福利在线看| 久久久久网址| 欧美国产日本| 亚洲狠狠婷婷| 欧美另类极品videosbest最新版本 | 亚洲午夜一二三区视频| 午夜精品影院在线观看| 国产精品色午夜在线观看| 午夜精品久久久久久久| 久久精品一区二区三区四区 | 伊人夜夜躁av伊人久久| 久久久午夜精品| 免费看的黄色欧美网站| 一区二区欧美激情| 国产精品福利影院| 欧美一区二视频在线免费观看| 久久久久一区二区三区| 亚洲国产高清高潮精品美女| 欧美日韩国产影片| 亚洲在线观看| 欧美高清影院| 亚洲午夜在线观看| 国产在线拍偷自揄拍精品| 久久天堂国产精品| 日韩图片一区| 欧美综合国产精品久久丁香| 在线欧美日韩精品| 欧美三区美女| 久久精品网址| 亚洲毛片播放| 久久久免费精品视频| 一区二区欧美日韩视频| 久久久综合网站| 一个色综合av| 国内揄拍国内精品久久| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲精品一线二线三线无人区| 久久爱www久久做| 亚洲精品一区在线观看| 国产日韩精品在线观看| 欧美日韩国产精品一区二区亚洲 | 久久成人精品一区二区三区| 亚洲福利视频专区| 国产一区二区精品久久| 欧美激情久久久| 性感少妇一区| 一区二区久久| 91久久久久久| 欧美sm视频| 久久天天躁狠狠躁夜夜爽蜜月| 中国日韩欧美久久久久久久久| 伊人蜜桃色噜噜激情综合| 国产精品美女999| 欧美日韩在线三级| 欧美mv日韩mv国产网站| 老色鬼精品视频在线观看播放| 亚洲欧美日韩成人| 亚洲视频在线免费观看| 中文日韩电影网站| 亚洲一区二区成人| 999亚洲国产精| 亚洲第一在线视频| 欧美高清视频一区二区| 欧美中文字幕在线视频| 欧美亚洲在线播放| 亚洲欧美日韩精品一区二区| 一区二区三区国产精华| 一区二区三区.www| 日韩亚洲欧美成人| 欧美精品黄色| 久久久亚洲精品一区二区三区| 亚洲电影免费| 最新国产成人在线观看| 久久精品在线免费观看| 久久综合色8888| 免费观看日韩av| 午夜亚洲福利| 亚洲色图综合久久| 亚洲午夜视频| av成人激情| 欧美激情一区二区| 一区二区三区精品视频| 亚洲男同1069视频| 亚洲久久在线| 亚洲国产专区校园欧美| 欧美日韩一区在线观看| 免费观看久久久4p| 久久九九99| 欧美成人一区二区在线| 久久久人成影片一区二区三区| 美日韩精品视频| 欧美在现视频| 欧美激情精品久久久久久黑人| 久久久久久亚洲综合影院红桃| 麻豆精品传媒视频| 亚洲精品综合精品自拍| 欧美国产视频在线| 欧美成人69av| 久久久99国产精品免费| 性做久久久久久久久| 在线视频你懂得一区| 亚洲人成啪啪网站| 亚洲欧美春色| 国产精品99久久久久久人| 一区二区高清视频| a91a精品视频在线观看| 亚洲一区日韩在线| 亚洲一卡二卡三卡四卡五卡| 欧美国产精品| 午夜精品久久久| 亚洲激情专区| 日韩一二在线观看| 久久久久久久久久久久久久一区| 亚洲人妖在线| 亚洲美女在线观看| 一区二区三区四区精品| 猛干欧美女孩| 欧美大片一区二区| 欧美极品影院| 久久躁狠狠躁夜夜爽| 欧美福利网址| 国产精品久久久久久久久婷婷 | 久久高清免费观看| 久久精品国产精品亚洲精品| 亚洲网址在线| 欧美在线中文字幕|