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 放...