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

隨筆 - 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爱| 久久精品欧洲| 亚洲自拍偷拍一区| 日韩亚洲视频| 在线一区二区视频| 欧美日韩久久精品| 亚洲美女精品成人在线视频| 欧美一区二区三区四区在线观看| 亚洲三级国产| 狠狠色综合色区| 欧美激情1区2区| 欧美—级a级欧美特级ar全黄| 亚洲免费在线视频| 欧美性大战xxxxx久久久| 欧美日韩国产一区精品一区| 欧美日韩一级视频| 国产裸体写真av一区二区| 韩国精品在线观看| 日韩天堂在线观看| 欧美一区二区三区视频在线 | 亚洲女女女同性video| 亚洲综合国产激情另类一区| 久久久久国产精品一区三寸| 欧美国产日韩一区二区| 国产精品一区二区黑丝| 亚洲欧洲在线看| 欧美一区二区视频免费观看| 欧美国产日韩二区| 午夜欧美视频| 欧美日韩在线视频一区| 在线观看一区二区精品视频| 亚洲自拍啪啪| 亚洲精品国产精品国自产观看浪潮| 欧美阿v一级看视频| 亚洲一区二区三区成人在线视频精品| 久久人人爽爽爽人久久久| 国产精品欧美一区喷水| 日韩亚洲欧美中文三级| 久久成人18免费网站| 亚洲黄页视频免费观看| 欧美一区二区三区视频| 国产精品av免费在线观看| 亚洲欧洲日韩综合二区| 老牛嫩草一区二区三区日本| 午夜精品久久| 国产精品网站在线播放| 亚洲天堂av高清| 亚洲精品美女久久7777777| 另类成人小视频在线| 韩国精品久久久999| 久久精品一二三| 久久高清一区| 国精品一区二区| 久久精品人人做人人爽| 亚洲欧美一区二区原创| 一本色道久久综合亚洲精品不| 午夜精品久久久久久久久| 久久综合色88| 久久久精品免费视频| 性欧美超级视频| 国产精品成人一区二区| 亚洲精品麻豆| 久久一区二区三区四区五区| 国产精品日韩欧美大师| 亚洲制服av| av成人手机在线| 欧美日韩一区三区四区| 这里只有视频精品| 99re6热在线精品视频播放速度| 欧美精品观看| 一区二区日韩免费看| 亚洲精品在线三区| 欧美午夜精品久久久久久超碰| 亚洲天堂av高清| 亚洲欧美福利一区二区| 国产一区二区三区四区hd| 久久综合给合久久狠狠色| 久久精品首页| 亚洲二区视频| 国产精品日韩一区二区| 亚洲国产一区二区三区a毛片| 欧美日本不卡视频| 久久亚裔精品欧美| 欧美激情综合色| 久久国产精品久久久| 欧美高清一区| 欧美激情小视频| 亚洲美女在线国产| 在线视频欧美日韩| 亚洲视频网在线直播| 国产综合av| 亚洲高清自拍| 国产精品久久一级| 麻豆精品精华液| 欧美精品在线极品| 欧美一区二区视频在线| 久久这里只有| 性欧美8khd高清极品| 老鸭窝亚洲一区二区三区| 亚洲视频高清| 久久精品在线播放| 亚洲一区二区三区精品在线 | 亚洲欧美激情视频| 亚洲欧洲精品天堂一级| 欧美亚洲系列| 欧美在线观看日本一区| 国产日韩精品一区二区浪潮av| 99国产精品久久| 久久精精品视频| 性一交一乱一区二区洋洋av| 久久精品国产一区二区电影 | 久久精品国产免费看久久精品| 亚洲国产成人在线| 亚洲一区二区三区精品在线 | aa级大片欧美三级| 久久久久一本一区二区青青蜜月| 在线中文字幕一区| 夜夜嗨av一区二区三区免费区| 日韩一区二区福利| 国精产品99永久一区一区| 美女任你摸久久| 亚洲一区精品在线| 99这里有精品| 精品福利电影| 欧美性色aⅴ视频一区日韩精品| 亚洲午夜成aⅴ人片| 欧美激情1区2区3区| 久久精品99| 欧美一区二区三区喷汁尤物| 亚洲日本激情| 欧美高清免费| 欧美日韩精品三区| 欧美高清在线观看| 国户精品久久久久久久久久久不卡| 亚洲性夜色噜噜噜7777| 一区二区三区高清不卡| 久久精品午夜| 久久九九99| 国产欧美一区二区精品性色| 国产午夜精品视频| 国产精品国产馆在线真实露脸| 亚洲高清一区二| 亚洲国产精品一区二区三区| 久久午夜精品| 欧美aⅴ99久久黑人专区| 又紧又大又爽精品一区二区| 久久久久国产免费免费| 欧美+亚洲+精品+三区| 极品少妇一区二区| 蜜桃av一区| 欧美韩国在线| 久久精品一本| 久久综合九色| 欧美黄污视频| av72成人在线| 欧美亚洲在线视频| 久久一区激情| 欧美理论电影在线播放| 国产欧美日韩亚洲一区二区三区| 亚洲茄子视频| 亚洲精品日本| 亚洲一区在线免费| 国产农村妇女毛片精品久久莱园子| 亚洲香蕉网站| 蜜桃av综合| 亚洲精品社区| 国产美女精品一区二区三区| 久久精品久久99精品久久| 欧美国产日产韩国视频| 国产精品99久久99久久久二8 | 久久久久国产免费免费| 亚洲乱码日产精品bd| 欧美在线高清| 亚洲三级电影在线观看| 国产精品永久免费在线| 免费中文日韩| 亚洲欧美国产高清| 亚洲国产精品久久久久秋霞不卡 | 91久久夜色精品国产九色| 亚洲精品视频在线播放| 久久精品99无色码中文字幕 | 国产日韩精品入口| 99精品免费视频| 久久亚洲国产精品一区二区 | 国产麻豆日韩欧美久久| 欧美一级大片在线免费观看| 欧美激情中文字幕乱码免费| 亚洲在线成人精品| 亚洲人成欧美中文字幕| 国产日韩欧美在线| 欧美日韩亚洲国产一区| 久久久综合视频| 午夜精品久久久久久久久久久| 亚洲福利免费| 欧美99久久| 免播放器亚洲| 久久成人精品视频| 亚洲小说区图片区| 亚洲免费电影在线观看| 亚洲国产高清在线|