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

隨筆 - 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>
              亚洲高清久久网| 亚洲福利视频专区| 亚洲一区在线免费| 亚洲天堂偷拍| 亚洲性xxxx| 欧美一区二区三区四区在线 | 久久亚洲影院| 美女免费视频一区| 亚洲福利视频二区| 亚洲美女在线看| 亚洲一区精彩视频| 久久av一区二区三区漫画| 久久精品国产一区二区三区免费看 | 狠色狠色综合久久| 亚洲片在线观看| 亚洲一区不卡| 久久人体大胆视频| 欧美高清影院| 亚洲综合色自拍一区| 久久久久久久久岛国免费| 欧美国产三级| 国产日韩欧美综合一区| 91久久精品视频| 欧美在线综合视频| 亚洲国产精品一区二区www| 一区二区欧美在线观看| 久久久精品久久久久| 欧美精选午夜久久久乱码6080| 国产精品久久久久久福利一牛影视| 国产亚洲精品久久久久婷婷瑜伽| 在线欧美福利| 欧美在线观看视频一区二区| 久久精品中文| 欧美精品1区2区| 国产日韩视频| 亚洲一区国产精品| 亚洲国产成人一区| 久久久国产成人精品| 欧美调教vk| 亚洲欧洲一二三| 快she精品国产999| 亚洲欧美中文另类| 国产精品乱码人人做人人爱| 亚洲精品永久免费| 久久最新视频| 久久精品国产清自在天天线| 国产精品普通话对白| 亚洲美女啪啪| 亚洲第一精品电影| 久久综合色婷婷| 国产一区在线免费观看| 午夜日韩在线| 亚洲欧美国产不卡| 欧美性大战久久久久久久| 日韩网站在线| 亚洲精品美女久久久久| 另类春色校园亚洲| 极品少妇一区二区| 久久精品国产亚洲精品| 亚洲欧美日韩国产成人| 国产精品亚洲成人| 亚洲欧美电影院| 亚洲宅男天堂在线观看无病毒| 欧美色中文字幕| 一区二区三区四区国产精品| 亚洲美女淫视频| 国产精品成人av性教育| 亚洲综合三区| 亚洲欧美激情诱惑| 国产一区二区三区自拍| 久久综合伊人77777| 一本久久综合亚洲鲁鲁五月天| 免费在线观看精品| 欧美wwwwww| 中文精品视频| 亚洲综合999| 狠狠久久婷婷| 亚洲国产精品99久久久久久久久| 欧美国产日韩一二三区| 亚洲一品av免费观看| 香蕉av福利精品导航| 激情欧美日韩| 亚洲国产毛片完整版| 欧美日韩一区二区国产| 久久福利影视| 欧美大尺度在线| 亚洲欧美激情一区| 欧美在线视频a| 日韩亚洲一区二区| 亚洲欧美一区二区三区久久 | 亚洲国产高清在线| 久久久亚洲欧洲日产国码αv| 亚洲欧美日本国产有色| 一区二区视频免费完整版观看| 欧美大片在线观看一区二区| 欧美日韩精品一区二区在线播放| 亚洲一二三四久久| 久久久成人精品| 亚洲一级片在线观看| 久久精品国语| 亚洲影视在线| 老巨人导航500精品| 亚洲亚洲精品三区日韩精品在线视频| 亚洲欧美国产精品va在线观看| 亚洲国产乱码最新视频| 在线亚洲欧美视频| 亚洲肉体裸体xxxx137| 亚洲自拍偷拍麻豆| 一区二区三区 在线观看视| 欧美一区二区私人影院日本| 99re热这里只有精品视频| 欧美中文在线字幕| 亚洲视频精品在线| 免费的成人av| 久久久久久久一区二区三区| 欧美日韩色婷婷| 欧美激情视频一区二区三区不卡| 国产欧美一区二区三区久久人妖| 亚洲日本成人网| 亚洲国产精品一区二区尤物区 | 在线综合亚洲| 欧美电影免费观看| 美女精品在线观看| 好看的日韩视频| 性欧美xxxx大乳国产app| 亚洲你懂的在线视频| 欧美日韩国产影院| 亚洲精品美女免费| 一区二区三区精密机械公司| 欧美国产免费| 亚洲肉体裸体xxxx137| 亚洲精品日产精品乱码不卡| 久久影视三级福利片| 免费国产一区二区| 亚洲第一区中文99精品| 久久香蕉国产线看观看av| 久久先锋资源| 一区二区在线视频播放| 久久精品国产69国产精品亚洲| 久久国内精品视频| 国产一区二区精品久久99| 欧美影片第一页| 久久天堂国产精品| 在线播放中文一区| 乱人伦精品视频在线观看| 亚洲动漫精品| 亚洲视频免费观看| 国产精品久久久久久久浪潮网站| 亚洲小视频在线| 久久精品成人一区二区三区| 国产一区在线免费观看| 久久亚洲春色中文字幕| 亚洲高清成人| 在线一区二区三区做爰视频网站| 欧美日韩亚洲一区二区三区在线观看 | 久久精品五月| 好看的日韩视频| 榴莲视频成人在线观看| 亚洲大片一区二区三区| 中日韩男男gay无套| 国产美女精品一区二区三区| 久久久久网站| 亚洲精品美女在线| 久久经典综合| 91久久精品网| 国产麻豆视频精品| 免费人成网站在线观看欧美高清 | 久久激情中文| 亚洲精品久久久久久久久久久久久 | 欧美不卡高清| 亚洲一区二区精品在线观看| 久久亚洲不卡| 正在播放欧美一区| 国产综合av| 欧美日韩在线播放三区四区| 欧美主播一区二区三区美女 久久精品人| 久久综合福利| 中日韩在线视频| 在线播放日韩专区| 国产精品久久久久一区二区三区共| 久久精品欧洲| 亚洲午夜激情网页| 99在线精品视频在线观看| 久久免费少妇高潮久久精品99| 亚洲成色精品| 久久黄色网页| 亚洲一区二区影院| 亚洲国产成人久久综合一区| 国产精品女人毛片| 欧美精品一区视频| 久久夜色精品| 午夜视频在线观看一区| 亚洲免费观看在线观看| 免费美女久久99| 欧美在线一二三四区| 一区二区三区四区五区在线| 亚洲第一久久影院| 黄色成人在线| 国内精品久久久久久久97牛牛| 欧美日韩一区综合|