lua 求table長度和判斷空

2021-08-25 05:24:19 字數 1208 閱讀 9385

local table_a = {}

判斷一:(錯誤方法)

if table_a == {} then

--你會發現你怎麼也進不來 條件判斷始終返回false,為什麼會這樣呢?

--原因:{}相當於建立了乙個表,只不過這個表的名字是匿名的,你看不到,我們假設它叫table_b

--你會發現判斷條件變成了比較table_a、table_b的記憶體位址。所以條件判斷始終返回false。

--正確的實現方法:判斷二  

end判斷二:(正確方法)

if next(table_a) == nil then

--你想實現的操作

end//怎麼求table的長度呢

對於乙個陣列我們通常可以使用#和table.getn來獲取其長度

tabletest = 

print(table.getn(tabletest)) ------》5

print(#tabletest) ------》5

使用這兩種方法都能得到這個陣列的長度,但是如果

tabletest = 

print(table.getn(tabletest)) ------》2

print(#tabletest) ------》2

發現不能獲得我們陣列真正的長度,這是因為陣列預設遇到nil便被判斷為陣列結束,所以最好不要用#和table.getn來獲取包含有nil的陣列長度

對於table來說,如果他不是陣列,我們使用#和table.getn是不能獲取它的長度的

tabletest = 

print(table.getn(tabletest)) ------》0

print(#tabletest) ------》0

我們可以使用pairs來獲取 

tabletest = 

local count=0

for k,v in pairs(tabletest) do

count = count + 1

endprint(count) ------》5

注意#只能獲取索引為連續數字的長度,如果不連續,只能獲取到連續的地方,其他地方被捨棄。 

lua中求table長度

關於lua table介紹,看以前的文章 官方文件是這麼描述 的 取長度操作符寫作一元操作 字串的長度是它的位元組數 就是以乙個字元乙個位元組計算的字串長度 tablet的長度被定義成乙個整數下標n。它滿足t n 不是nil而t n 1 為nil 此外,如果t 1 為nil,n就可能是零。對於常規的...

lua的table長度問題

看以下 local tbltest1 print table.getn tbltest1 這段 輸出的結果是3,這個大家都知道,是吧。不管最後那個3後面有沒有加逗號,結果都是3。再看下面的 local tbltest2 print table.getn tbltest2 這段 輸出的結果是多少?這裡...

Lua中table的長度

官方文件是這麼描述 的 取長度操作符寫作一元操作 字串的長度是它的位元組數 就是以乙個字元乙個位元組計算的字串長度 table t 的長度被定義成乙個整數下標 n 它滿足 t n 不是nil而 t n 1 為nil 此外,如果 t 1 為nil,n 就可能是零。對於常規的陣列,裡面從 1 到 n 放...