亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Lua中獲取table長度的方法

2024-07-21 23:04:38
字體:
來源:轉載
供稿:網友

官方文檔是這么描述#的:

取長度操作符寫作一元操作 #。 字符串的長度是它的字節數(就是以一個字符一個字節計算的字符串長度)。

table t 的長度被定義成一個整數下標 n 。 它滿足 t[n] 不是 nil 而 t[n+1] 為 nil; 此外,如果 t[1] 為 nil ,n 就可能是零。 對于常規的數組,里面從 1 到 n 放著一些非空的值的時候, 它的長度就精確的為 n,即最后一個值的下標。 如果數組有一個“空洞” (就是說,nil 值被夾在非空值之間), 那么 #t 可能是指向任何一個是 nil 值的前一個位置的下標 (就是說,任何一個nil 值都有可能被當成數組的結束)。

復制代碼 代碼如下:

local tblTest2 =
{
    1,
    a = 2,
    3,
}

 

print(table.getn(tblTest2))


這段代碼輸出的結果是多少?這里的輸出結果應該是2。首先,要明白,這個tblTest2不是一個簡單的table,它混合了列表(list)和記錄(record)兩種風格,表中,a = 2是record風格。其次,要明白,record風格的record是不作為外表的長度計算。你可以把它想象成一個函數,跟其他面向對象語言一樣,函數是不記為內部變量的。

 

既然像函數一樣,那就可以輸出a的值,是的。print(tblTest2.a)就可以了。

再看下面的代碼:

復制代碼 代碼如下:

local tblTest3 =
{
    1,
    {a = 2},
    3,
}

 

print(table.getn(tblTest3))


這段代碼輸出的結果是多少?這里的輸出結果應該是3。要注意,表嵌套表,嵌套表也是元素。所以,輸出的結果是3。
復制代碼 代碼如下:

table.getn(t)

等價于 #t。
以下情況相當糾結,可直接看最后一句話總結:

 

現在來看一個比較糾結的:

復制代碼 代碼如下:

local tblTest4 =
{
    1,
    nil,
}

 

print(table.getn(tblTest4))


這段代碼輸出的結果是多少?是1。我們都知道table獲取長度的時候,會遍歷一下整個表,在最后一個非nil處,就會返回。
但是,下面這段代碼呢?
復制代碼 代碼如下:

local tblTest5 =
{
    1,
    nil,
    2,
}

 

print(table.getn(tblTest5))


輸出3,好玩吧?它把nil也當成元素計算長度了。但叫你摸不著頭腦的是下面這段代碼:。
復制代碼 代碼如下:

local tblTest5 =
{
1,
nil,
2,
nil
}

輸出1.再發一段,讓你完全蒙掉:
復制代碼 代碼如下:

local tblTest5 =
{
1,
nil,
2,
nil,
3,
nil
}

輸出3.蒙了沒?再看,這一段叫你以后再也不敢再table中寫nil值:
復制代碼 代碼如下:

local tblTest5 =
{
1,
nil,
2,
nil,
3,
nil,
4,
nil
}

看看吧,這一段的輸出結果是1。親,請問,你以后還敢在lua的table中用nil值嗎???如果你繼續往后面加nil,你可能會發現點什么。你可能認為你發現的是個規律。但是,你千萬不要認為這是個規律。因為這是錯誤的。

 

1、在table中不要使用nil

2、如果非要使用nil,必須用table.setn()函數去設置這個table表的長度。注意:新版本的lua已經不支持setn了。

必須給你個結論:

setn函數已過時,不要在lua的table中使用nil值,如果一個元素要刪除,直接remove,不要用nil去代替。

 

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品激情在线| 欧美国产中文字幕| 日韩欧美中文在线| 欧美日本中文字幕| 伊人精品在线观看| 精品国产拍在线观看| 欧美性感美女h网站在线观看免费| 亚洲欧美一区二区三区久久| 国产免费成人av| 国产精品三级在线| 国产成人综合精品| 亚洲午夜女主播在线直播| 欧美日韩中文在线观看| 欧美成人一区二区三区电影| 亚洲欧美激情另类校园| 欧美日韩高清区| 久久久精品999| 国产精品久久久久久五月尺| 国产精品十八以下禁看| 一区二区av在线| 中文字幕一精品亚洲无线一区| 久久久久久久久国产精品| 91国自产精品中文字幕亚洲| 欧美激情久久久久久| 久久久国产视频91| 日韩免费av一区二区| 亚洲性日韩精品一区二区| 91精品国产91久久久久久| 亚洲欧美在线x视频| 91精品视频一区| 国产一区二区三区在线观看网站| 欧洲成人午夜免费大片| 蜜月aⅴ免费一区二区三区| 欧美日韩午夜剧场| 伊人av综合网| 日韩中文字幕网站| 欧美日韩午夜剧场| 亚洲成年人在线播放| 亚洲人成电影网| 午夜免费日韩视频| 亚洲国产天堂网精品网站| 精品国产乱码久久久久久婷婷| 亚洲综合成人婷婷小说| 精品福利樱桃av导航| 国产精品久久久久久久久久尿| 黄色精品在线看| 国产视频精品xxxx| 91最新国产视频| 欧美黑人xxxⅹ高潮交| 久久视频精品在线| 96sao精品视频在线观看| 国产极品jizzhd欧美| 久久免费精品日本久久中文字幕| 亚洲性av在线| 欧美成人精品不卡视频在线观看| 午夜精品久久久99热福利| 日韩av大片免费看| 人妖精品videosex性欧美| 97超级碰碰碰久久久| 国产精品一区二区三区在线播放| 久久这里有精品| 亚洲国产欧美在线成人app| 美女福利精品视频| 日韩福利视频在线观看| 久久精品99无色码中文字幕| 国产精品免费久久久| 日本高清不卡在线| 久久香蕉频线观| 8090成年在线看片午夜| 欧美激情免费在线| 日韩亚洲第一页| 青青精品视频播放| 亚洲欧美色图片| 中文字幕精品一区二区精品| 国产精品黄视频| 欧美激情一区二区三区成人| 啪一啪鲁一鲁2019在线视频| 亚洲精品久久久久中文字幕二区| 国产狼人综合免费视频| 国产精品777| 国产精品第一区| 欧美一级电影免费在线观看| 免费不卡欧美自拍视频| 日韩av免费在线看| 亚洲激情视频在线| 久久久久999| 亚洲日韩欧美视频| 国产97在线观看| 亚洲精品www| 成人福利在线视频| 欧美一二三视频| 欧美激情视频一区二区| 在线视频欧美日韩精品| 日韩欧美国产视频| 91久久精品美女高潮| 欧美性猛交xxxx乱大交极品| 国产精品视频精品| 久久久久免费精品国产| 亚洲第一级黄色片| 中文国产成人精品久久一| 欧美极度另类性三渗透| 日韩中文字幕欧美| 亚洲天天在线日亚洲洲精| 亚洲男人第一av网站| 亚洲精品电影在线观看| 国产精品日韩精品| 日韩在线观看精品| 日本免费久久高清视频| 欧美黄色性视频| 久久精品99国产精品酒店日本| 日韩精品一区二区视频| 久久伊人精品一区二区三区| 久久久久国产精品免费网站| 伊人激情综合网| 久久久久久久成人| 亚洲区一区二区| 亚洲色在线视频| 欧美日韩精品在线视频| 热久久免费视频精品| 国产精品一区二区3区| 九九热这里只有精品6| 日韩av片永久免费网站| 日韩在线视频线视频免费网站| 夜夜嗨av色一区二区不卡| 国产一区二区三区日韩欧美| 91在线视频九色| 日韩中文字幕国产| 国产欧美一区二区三区久久人妖| 日韩中文字幕在线播放| 成人免费在线视频网址| 国产一区二区日韩| 欧美在线免费视频| 国产91精品网站| 亚洲国产成人久久| 国模精品视频一区二区| 社区色欧美激情 | 亚洲精品999| 深夜福利日韩在线看| 91sa在线看| 91免费的视频在线播放| 7777kkkk成人观看| 欧美在线视频导航| 日韩在线激情视频| 国产精品老女人精品视频| 欧美黑人极品猛少妇色xxxxx| 国产91在线播放| 午夜精品一区二区三区在线播放| 69**夜色精品国产69乱| 一本色道久久88精品综合| 国产精品亚洲自拍| 日韩成人在线网站| 久久久久国色av免费观看性色| 欧美三级免费观看| 亚洲女人天堂网| 精品日韩视频在线观看| 久久中文字幕在线视频| 亚洲无限乱码一二三四麻| 国产精品永久免费在线| 按摩亚洲人久久| 91久热免费在线视频| 久久6精品影院| 在线观看欧美视频| 国产香蕉精品视频一区二区三区| 欧美国产中文字幕|