麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > 綜合 > 正文

Lua 中 pairs 和 ipairs 的區(qū)別

2024-07-21 23:04:12
字體:
供稿:網(wǎng)友

官方文檔上的說明:

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,只能返回?cái)?shù)字0,如果遇到nil則退出。它只能遍歷到表中出現(xiàn)的第一個(gè)不是整數(shù)的key

下面舉個(gè)例子

 

復(fù)制代碼 代碼如下:

local tabFiles = {  
[3] = "test2",  
[6] = "test3",  
[4] = "test1" 
}  
for k, v in ipairs(tabFiles) do 
    print(k, v)  
end 

 

猜測(cè)它的輸出結(jié)果是什么呢?根據(jù)剛才的分析,它在 ipairs(tabFiles) 遍歷中,當(dāng)key=1時(shí)候value就是nil,所以直接跳出循環(huán)不輸出任何值。

 

復(fù)制代碼 代碼如下:

>lua -e "io.stdout:setvbuf 'no'" "test.lua" 
>Exit code: 0 

 

那么,如果是

 

復(fù)制代碼 代碼如下:

for k, v in pairs(tabFiles) do 
    print(k, v)  
end 

 

則會(huì)輸出所有:

 

復(fù)制代碼 代碼如下:

>lua -e "io.stdout:setvbuf 'no'" "test.lua"   
3 test2  
6 test3  
4 test1  
>Exit code: 0 

 

現(xiàn)在改變一下表內(nèi)容:

 

復(fù)制代碼 代碼如下:

local tabFiles = {  
[1] = "test1",  
[6] = "test2",  
[4] = "test3" 
}  
 
for k, v in ipairs(tabFiles) do 
    print(k, v)  
end 

 

現(xiàn)在的輸出結(jié)果顯而易見就是key=1時(shí)的value值test1

 

復(fù)制代碼 代碼如下:

>lua -e "io.stdout:setvbuf 'no'" "test.lua"   
1 test1  
>Exit code: 0 

 

 

復(fù)制代碼 代碼如下:

-- [[示例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時(shí)斷開  
    print( tt[i] )  
end  
 
-- [[示例2.]] --  
tbl = {"alpha", "beta", [3] = "uno", ["two"] = "dos"}  
 
for i,v in ipairs(tbl) do    --輸出前三個(gè)  
    print( tbl[i] )  
end  
 
for i,v in pairs(tbl) do    --全部輸出  
    print( tbl[i] )  
end 

 

Lua,pairs,ipairs,區(qū)別

Lua,pairs,ipairs,區(qū)別

 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品99久久99久久久二 | 综合网天天色 | 一本大道av | 欧美日韩视频第一页 | 斗破苍穹在线观看免费完整观看 | 精品一区二区三区中文字幕老牛 | 久久久裸体视频 | 欧美a久久 | www.99久久久 | 在线观看免费污视频 | 久久久涩 | 免费观看欧美一级片 | 黄色网址在线视频 | 久久久久久久久久久久久久久久久久 | 国产精品久久久久久久久久东京 | 一级尻逼视频 | 日韩在线欧美在线 | 国产精品成人久久 | 久久久久久中文字幕 | 99爱视频| 久国久产久精永久网页 | 成人一级视频在线观看 | 午夜视频在线观看免费视频 | 噜噜在线视频 | 凹凸成人精品亚洲精品密奴 | 久久亚洲视频网 | 国产美女视频黄a视频免费 日韩黄色在线播放 | 毛片一级免费看 | www69xxxxx| 久久久久久久久亚洲精品 | 久久精品一区二区三区国产主播 | 国产精品一品二区三区四区18 | 成av人在线观看 | 国产精品久久久久久久av | 午夜视 | 亚洲成人免费影视 | 在线成人一区 | 日韩午夜一区二区三区 | 国产98色在线 | 欧美成人激情在线 | 亚洲aⅴ免费在线观看 |