最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Lua中ipair和pair的區(qū)別

 更新時(shí)間:2014年09月19日 12:09:54   投稿:junjie  
這篇文章主要介紹了Lua中ipair和pair的區(qū)別,ipair和pair都是用來遍歷table用的,需要的朋友可以參考下

先看看官方手冊的說明吧:

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

pairs (t)If t has a metamethod __pairs, calls it with t as argument and returns the first three results from the call.
Otherwise, 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 (t)If t has a metamethod __ipairs, calls it with t as argument and returns the first three results from the call.
Otherwise, 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會遍歷table的所有鍵值對。如果你看過耗子叔的Lua簡明教程,你知道table就是鍵值對的數(shù)據(jù)結(jié)構(gòu)。

而ipairs就是固定地從key值1開始,下次key累加1進(jìn)行遍歷,如果key對應(yīng)的value不存在,就停止遍歷。順便說下,記憶也很簡單,帶i的就是根據(jù)integer key值從1開始遍歷的。

請看個(gè)例子。

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

tb = {"oh", [3] = "god", "my", [5] = "hello", [6] = "world"}

for k,v in ipairs(tb) do
     print(k, v)
end


輸出結(jié)果就是:
復(fù)制代碼 代碼如下:

1       oh
2       my
3       god

因?yàn)閠b不存在tb[4],所以遍歷到此為止了。
復(fù)制代碼 代碼如下:

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

輸出結(jié)果:
復(fù)制代碼 代碼如下:

1       oh
2       my
3       god
6       world
5       hello

我們都能猜到,將輸出所有的內(nèi)容。然而你發(fā)現(xiàn)輸出的順序跟你tb中的順序不同。
如果我們要按順序輸出怎么辦?辦法之一是:
復(fù)制代碼 代碼如下:

for i = 1, #tb do
     if tb[i] then
          print(tb[i])
     else
end

當(dāng)然,僅僅是個(gè)數(shù)組的話,ipairs也沒問題。

以上(為什么不少回答會以「以上」收尾?,這里就是結(jié)束的意思吧)

相關(guān)文章

  • Lua中關(guān)于求模與求余的區(qū)別介紹

    Lua中關(guān)于求模與求余的區(qū)別介紹

    這篇文章主要介紹了Lua中關(guān)于求模與求余的區(qū)別介紹,我覺得很多人搞不清楚這兩個(gè)概念的區(qū)別,剛好在翻譯lua手冊時(shí)遇到%與math.fmod這兩個(gè)操作,順便做一下說明吧,需要的朋友可以參考下
    2015-04-04
  • Lua極簡入門指南(一):基礎(chǔ)知識篇

    Lua極簡入門指南(一):基礎(chǔ)知識篇

    這篇文章主要介紹了Lua極簡入門指南(一):基礎(chǔ)知識篇,本文羅列了Lua的基礎(chǔ)知識,如注釋、數(shù)據(jù)類型、table、循環(huán)控制結(jié)構(gòu)等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • Lua中table的遍歷詳解

    Lua中table的遍歷詳解

    這篇文章主要介紹了Lua中table的遍歷詳解,本文講解了4種遍歷方法,并詳細(xì)分析了這4種方法的特點(diǎn)、使用環(huán)境、相關(guān)知識等,需要的朋友可以參考下
    2015-04-04
  • Lua中的loadfile、dofile、require詳解

    Lua中的loadfile、dofile、require詳解

    這篇文章主要介紹了Lua中的loadfile、dofile、require詳解,本文分別用實(shí)例講解它的用法和特點(diǎn)等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Lua中ipair和pair的區(qū)別

    Lua中ipair和pair的區(qū)別

    這篇文章主要介紹了Lua中ipair和pair的區(qū)別,ipair和pair都是用來遍歷table用的,需要的朋友可以參考下
    2014-09-09
  • lua腳本語言快速入門教程

    lua腳本語言快速入門教程

    這篇文章主要介紹了lua腳本語言快速入門教程,本文講解了變量及常量、字符串、邏輯控制語句、循環(huán)結(jié)構(gòu)、函數(shù)及其使用等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • Lua中讓回調(diào)函數(shù)支持回調(diào)對象方法的解決方法

    Lua中讓回調(diào)函數(shù)支持回調(diào)對象方法的解決方法

    這篇文章主要介紹了Lua中讓回調(diào)支持對象方法,一般情況下,Lua中只支持回調(diào)一個(gè)函數(shù),本文方法實(shí)現(xiàn)可以回調(diào)一個(gè)對象的方法,需要的朋友可以參考下
    2014-12-12
  • Lua下基本的網(wǎng)絡(luò)編程示例

    Lua下基本的網(wǎng)絡(luò)編程示例

    這篇文章主要介紹了Lua下基本的網(wǎng)絡(luò)編程示例,包括簡單的服務(wù)器的搭建和相關(guān)web組件的介紹等,需要的朋友可以參考下
    2015-05-05
  • Lua編程示例(八):生產(chǎn)者-消費(fèi)者問題

    Lua編程示例(八):生產(chǎn)者-消費(fèi)者問題

    這篇文章主要介紹了Lua編程示例(八):生產(chǎn)者-消費(fèi)者問題,本文直接給出實(shí)例代碼,需要的朋友可以參考下
    2015-07-07
  • Lua學(xué)習(xí)筆記之運(yùn)算符和表達(dá)式

    Lua學(xué)習(xí)筆記之運(yùn)算符和表達(dá)式

    這篇文章主要介紹了Lua學(xué)習(xí)筆記之運(yùn)算符和表達(dá)式,本文在代碼中使用注釋對Lua的運(yùn)算符和表達(dá)式做了講解,需要的朋友可以參考下
    2014-09-09

最新評論

包头市| 西宁市| 浮山县| 凌源市| 中山市| 县级市| 汉川市| 芮城县| 六盘水市| 新兴县| 彭水| 临清市| 体育| 绥阳县| 苍南县| 长岛县| 嘉鱼县| 特克斯县| 潜江市| 龙口市| 祁阳县| 民乐县| 齐齐哈尔市| 富蕴县| 翁牛特旗| 衡东县| 弥渡县| 永吉县| 淳安县| 石台县| 清丰县| 炎陵县| 资兴市| 襄樊市| 天全县| 遂溪县| 珲春市| 普陀区| 永德县| 陆良县| 中阳县|