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

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

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

先看看官方手冊(cè)的說(shuō)明吧:

復(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.

原來(lái),pairs會(huì)遍歷table的所有鍵值對(duì)。如果你看過(guò)耗子叔的Lua簡(jiǎn)明教程,你知道table就是鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu)。

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

請(qǐng)看個(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ù)組的話(huà),ipairs也沒(méi)問(wèn)題。

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

相關(guān)文章

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

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

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

    Lua極簡(jiǎn)入門(mén)指南(一):基礎(chǔ)知識(shí)篇

    這篇文章主要介紹了Lua極簡(jiǎn)入門(mén)指南(一):基礎(chǔ)知識(shí)篇,本文羅列了Lua的基礎(chǔ)知識(shí),如注釋、數(shù)據(jù)類(lèi)型、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)知識(shí)等,需要的朋友可以參考下
    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都是用來(lái)遍歷table用的,需要的朋友可以參考下
    2014-09-09
  • lua腳本語(yǔ)言快速入門(mén)教程

    lua腳本語(yǔ)言快速入門(mén)教程

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

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

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

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

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

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

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

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

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

最新評(píng)論

德庆县| 福鼎市| 东辽县| 青铜峡市| 临清市| 鄂尔多斯市| 南昌市| 宁都县| 绥芬河市| 阿城市| 和田市| 永兴县| 丽水市| 蒙阴县| 阜新市| 绿春县| 茌平县| 江安县| 句容市| 防城港市| 宣化县| 梧州市| 克什克腾旗| 淅川县| 河北省| 临安市| 封丘县| 四川省| 马龙县| 米林县| 吐鲁番市| 信阳市| 扶绥县| 宜良县| 新和县| 陕西省| 温泉县| 个旧市| 德钦县| 荥阳市| 佳木斯市|