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

Lua判斷Table是否為空的方法(空的table即{})

 更新時間:2015年04月20日 09:03:31   投稿:junjie  
這篇文章主要介紹了Lua判斷Table是否為空的方法(空的table即{}),如何判斷l(xiāng)ua中的table是否是空的table呢,本文就試驗了多個方法,最后得出比較好的判斷方法,需要的朋友可以參考下

判斷方法結論:

復制代碼 代碼如下:

a={}
if next(a) ~=nil then dosomething end

    最近在項目里面大量使用的lua,其中l(wèi)ua的table是lua中重要的數(shù)據(jù)結構,可以被用來當做C++中的數(shù)組,vector,map來使用。

    如何判斷l(xiāng)ua中的table是否是空的table呢?

    一開始我沒動腦子,是這樣寫的:

復制代碼 代碼如下:

a={}
if a ==nil then dosomething end

    這個方法錯誤是顯而易見的,在lua中a其實是一個指針,指向了table的結構,所以這個方法其實是比較地址是否為空,顯然錯了。

    之后我改進了下,代碼如下:

復制代碼 代碼如下:

a={}
if a=={} then dosomething end

    仔細一看上面的改進,相當于沒改,這里的a指針比較的還是一個匿名的地址,肯定是false。

    之后我這樣想,空table的size肯定為0,那我直接判斷表的大小不就完了嘛,于是我借助#操作符,代碼改進為:

復制代碼 代碼如下:

a={}
if #a==0 then dosomething end

    但是問題來了,#操作符要求table中的項都不為nil,悲?。≈笪蚁氲搅藅able.maxn內(nèi)置函數(shù),于是代碼繼續(xù)改成:
復制代碼 代碼如下:

a={}
if table.maxn(a) == 0 then dosomething end

    不容易啊,程序可以跑了,但是查閱了下相關資料,maxn函數(shù)是根據(jù)每一項的hash來判斷的,這樣寫代碼也很保險,除非你的table是全數(shù)字的鍵。

    最后才想起用泛型方法遍歷一個table時使用的內(nèi)置next函數(shù),代碼改進如下:

復制代碼 代碼如下:

a={}
if next(a) ~=nil then dosomething end

相關文章

  • Lua中遍歷文件操作代碼實例

    Lua中遍歷文件操作代碼實例

    這篇文章主要介紹了Lua中遍歷文件操作代碼實例,本文直接給出示例代碼,需要的朋友可以參考下
    2015-05-05
  • Lua中的類編程代碼實例

    Lua中的類編程代碼實例

    這篇文章主要介紹了Lua中的類編程代碼實例,本文直接用代碼講解類的創(chuàng)建、類的實例化、類的方法調(diào)用、類的繼承、類的多重繼承等面向?qū)ο缶幊谭椒?需要的朋友可以參考下
    2015-04-04
  • 深入談談lua中神奇的table

    深入談談lua中神奇的table

    table 在lua中是一個非常常用的數(shù)據(jù)結構,可以用來存放各種類型的元素,下面這篇文章就來給大家介紹了關于lua中神奇的table的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-07-07
  • Lua腳本調(diào)用外部腳本

    Lua腳本調(diào)用外部腳本

    在游戲腳本開發(fā)中,我們往往會發(fā)現(xiàn)腳本量非常大,而且我們經(jīng)常會在一些核心腳本文件中定義常用的功能函數(shù),但是Lua腳本沒有提供include關鍵詞,那又是怎樣調(diào)用外部函數(shù)的呢?如何實現(xiàn)腳本的Include功能?
    2014-09-09
  • Lua中訪問table里函數(shù)的方法示例

    Lua中訪問table里函數(shù)的方法示例

    這篇文章主要介紹了Lua中訪問table里函數(shù)的方法示例,本文例子超級簡單,算是入門實例吧,其實只需要表名.方法名即可訪問,重要的還是其它代碼寫法,本文給出了一個完整的代碼示例,需要的朋友可以參考下
    2015-04-04
  • Lua學習筆記之類型與值

    Lua學習筆記之類型與值

    本文詳細的總結了Lua中的類型與值,對于實際編程中容易出錯的地方也進行了詳細的總結,十分的全面實用。有需要的小伙伴可以參考下。
    2015-04-04
  • Lua學習筆記之表和函數(shù)

    Lua學習筆記之表和函數(shù)

    這篇文章主要介紹了Lua學習筆記之表和函數(shù),本文在代碼中使用大量注釋講解了Lua的表和函數(shù)的使用,需要的朋友可以參考下
    2014-09-09
  • Lua中的變量和流控制入門學習

    Lua中的變量和流控制入門學習

    這篇文章主要介紹了Lua中的變量和流控制入門學習,其中--兩個橫線開始單行的注釋,--[[加上兩個[和]表示多行的注釋--]],需要的朋友可以參考下
    2015-07-07
  • Lua編程示例(四):Lua標準庫之表庫、字符串庫、系統(tǒng)庫

    Lua編程示例(四):Lua標準庫之表庫、字符串庫、系統(tǒng)庫

    這篇文章主要介紹了Lua編程示例(四):Lua標準庫之表庫、字符串庫、系統(tǒng)庫,需要的朋友可以參考下
    2015-07-07
  • Lua中string.lower()使用指南

    Lua中string.lower()使用指南

    這篇文章主要介紹了Lua中操作字符串的基本方法整理,是Lua入門學習中的基礎知識,需要的朋友可以參考下
    2016-08-08

最新評論

中方县| 定西市| 扶绥县| 巴楚县| 右玉县| 区。| 甘孜县| 岳池县| 永嘉县| 镇宁| 揭西县| 平泉县| 揭阳市| 红安县| 游戏| 伊川县| 呼图壁县| 恩平市| 巴东县| 临汾市| 巴南区| 宣威市| 鄂托克旗| 扶绥县| 凤台县| 隆回县| 虞城县| 蛟河市| 手机| 礼泉县| 乌拉特前旗| 桐柏县| 娄烦县| 甘泉县| 宜春市| 三台县| 炉霍县| 彭山县| 凉城县| 新龙县| 潍坊市|