婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Lua 中 pairs 和 ipairs 的區別

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

下面舉個例子

復制代碼 代碼如下:

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 

您可能感興趣的文章:
  • Lua中pairs與ipairs的區別總結

標簽:天門 天門 濰坊 宣城 臺灣 儋州 德宏 金昌

巨人網絡通訊聲明:本文標題《Lua 中 pairs 和 ipairs 的區別》,本文關鍵詞  Lua,中,pairs,和,ipairs,的,區別,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua 中 pairs 和 ipairs 的區別》相關的同類信息!
  • 本頁收集關于Lua 中 pairs 和 ipairs 的區別的相關信息資訊供網民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章
    主站蜘蛛池模板: 马公市| 阳西县| 临海市| 宜章县| 凤台县| 南皮县| 大田县| 博罗县| 广丰县| 敦煌市| 鹤壁市| 阳城县| 和静县| 康保县| 广宗县| 达孜县| 博爱县| 丰宁| 姜堰市| 安岳县| 惠州市| 禄丰县| 平和县| 弥渡县| 江陵县| 双柏县| 阳信县| 连江县| 昆山市| 绥芬河市| 千阳县| 巴青县| 霍州市| 锦屏县| 合阳县| 晋宁县| 东方市| 达尔| 定日县| 东光县| 尼玛县|