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

隨筆 - 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 風輕云淡 閱讀(20931) 評論(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>
              久久精品国产77777蜜臀| 欧美va天堂在线| 欧美一级专区| 亚洲天堂av在线免费| 亚洲精品久久久久中文字幕欢迎你 | 午夜激情综合网| 午夜激情一区| 免费成人在线观看视频| 女生裸体视频一区二区三区| 免费欧美高清视频| 最新国产成人在线观看| 欧美国产一区二区| 99亚洲视频| 欧美一区二区| 欧美福利电影在线观看| 国产精品久久久久久久久久免费看| 国产精品一区二区三区久久久| 国内精品嫩模av私拍在线观看| 影音先锋久久| 亚洲欧美国产精品va在线观看| 久久久精彩视频| 亚洲精品在线视频观看| 激情欧美一区| 欧美成人综合网站| 久久影院亚洲| 亚洲国产小视频在线观看| 欧美激情黄色片| 夜夜爽www精品| 久久久一本精品99久久精品66| 久久久久久久尹人综合网亚洲| 亚洲精品女人| 好吊成人免视频| 99在线精品视频| 午夜久久资源| 亚洲欧洲视频| 久久国产精品一区二区三区| 欧美日本在线| 精品av久久707| 先锋亚洲精品| 日韩亚洲欧美成人| 久久一区二区三区国产精品| 国产精品久久毛片a| 亚洲欧洲一区| 女同性一区二区三区人了人一 | 99热精品在线| 久久综合一区| 欧美亚洲综合另类| 国产精品国产三级国产专区53| 91久久在线播放| 老司机免费视频一区二区| 亚洲影视在线播放| 国产精品久久福利| aa日韩免费精品视频一| 欧美电影在线观看| 久久久久国产精品一区三寸| 国产欧美一区二区三区在线看蜜臀 | 国产精品大片| 亚洲视频欧美视频| 亚洲激情视频| 欧美黑人国产人伦爽爽爽| 亚洲第一精品夜夜躁人人躁| 久久久久国色av免费观看性色| 亚洲一二三级电影| 国产精品美女久久久免费| 亚洲视频高清| 亚洲综合国产| 国产一级一区二区| 久久久久在线| 免费观看日韩| 99精品久久久| 日韩一级精品| 国产精品揄拍500视频| 欧美亚洲视频| 久久精品中文字幕免费mv| 激情综合色综合久久| 美女黄毛**国产精品啪啪| 久久久久久久综合色一本| 尤物99国产成人精品视频| 农村妇女精品| 欧美日韩激情小视频| 午夜精品理论片| 欧美中文字幕在线播放| 亚洲国产精品尤物yw在线观看 | 亚洲国产一区二区三区高清 | 牛牛国产精品| 亚洲国产高清在线观看视频| 欧美激情女人20p| 欧美日韩国产123区| 亚洲欧美日韩在线一区| 午夜在线观看欧美| 亚洲香蕉网站| 欧美一区二区三区电影在线观看| 国产午夜精品视频| 亚洲承认在线| 国产精品九九久久久久久久| 久久精品视频免费观看| 久久综合一区| 亚洲午夜久久久久久久久电影院| 午夜视频在线观看一区| 亚洲人精品午夜| 午夜精品网站| 亚洲美女黄色| 亚洲欧美一区二区原创| 亚洲国产三级网| 西西人体一区二区| 99精品视频一区| 久久久久久久尹人综合网亚洲| 在线一区亚洲| 久久尤物视频| 欧美在线在线| 国产精品高精视频免费| 麻豆九一精品爱看视频在线观看免费| 欧美日本韩国在线| 女女同性精品视频| 国产亚洲亚洲| 亚洲制服少妇| 亚洲综合色婷婷| 欧美精品一区二| 欧美激情区在线播放| 国内精品久久久久久久97牛牛| 中文av字幕一区| aaa亚洲精品一二三区| 久久亚洲欧洲| 美女黄网久久| 在线观看一区视频| 欧美在线国产| 久久久久88色偷偷免费| 国产伦精品一区二区三区免费迷 | 免费日韩一区二区| 久久琪琪电影院| 国产日产精品一区二区三区四区的观看方式 | 国产精品拍天天在线| 亚洲精品国产精品久久清纯直播| 黄色成人在线免费| 欧美影院午夜播放| 久久精品首页| 韩国在线一区| 久久精选视频| 麻豆精品一区二区av白丝在线| 一本久久a久久精品亚洲| 久久激情视频| 久久精品一区二区三区四区| 国产精品久久久一区二区三区| 夜夜精品视频| 午夜精品久久久久久久99樱桃| 欧美性jizz18性欧美| 一区二区三区四区五区视频| 亚洲视频专区在线| 国产精品视频一| 欧美在线免费| 欧美二区在线观看| 日韩视频不卡| 国产精品video| 午夜久久久久久| 麻豆精品在线播放| 亚洲精品小视频在线观看| 欧美日本国产| 午夜欧美电影在线观看| 久久综合狠狠| 日韩亚洲一区在线播放| 欧美日韩中文字幕在线| 午夜国产欧美理论在线播放| 久久女同精品一区二区| 亚洲精品免费一区二区三区| 欧美日韩一区三区| 欧美一区二区三区视频在线观看| 老牛影视一区二区三区| 99精品福利视频| 国产亚洲精品aa| 欧美电影在线观看完整版| 一区二区av在线| 久久综合一区二区| 一二三区精品| 加勒比av一区二区| 欧美三级网址| 久久久久久久一区二区三区| 91久久精品国产| 久久爱www久久做| 亚洲精品欧美激情| 国产欧美不卡| 欧美日产一区二区三区在线观看| 午夜天堂精品久久久久| 亚洲第一区色| 久久久精品一区| 亚洲欧美日韩国产一区二区| 在线看无码的免费网站| 国产精品成人aaaaa网站| 久久亚洲影院| 亚洲小视频在线观看| 亚洲国产成人一区| 久久精品色图| 亚洲一区二区不卡免费| 91久久线看在观草草青青| 国产视频一区在线| 欧美午夜不卡| 欧美区一区二| 美女精品视频一区| 香港久久久电影| 99国产精品一区| 欧美成人免费网|