對於乙個陣列我們通常可以使用#來獲取其長度
tabletest =
print(#tabletest) ------》5
使用這兩種方法都能得到這個陣列的長度,但是如果
tabletest =
print(#tabletest) ------》6
tabletest =
print(#tabletest) ------》1
tabletest =
print(#tabletest) ------》3
tabletest =
print(#tabletest) ------》1
結果顯示並不是陣列預設遇到nil便被判斷為陣列結束,並沒有什麼規律而言。所以不要用#來獲取包含有nil的陣列長度。
注意:
不要在 lua 的 table 中使用 nil 值,如果乙個元素要刪除,直接 remove,不要用 nil 去代替
對於table來說,如果他不是陣列,我們使用#和table.getn是不能獲取它的長度的
tabletest =
print(#tabletest) ------》0
我們可以使用pairs來獲取
tabletest =
local count=0
for k,v in pairs(tabletest) do
count = count + 1
endprint(count) ------》5
獲取陣列的長度
獲取陣列的長度 c語言中,定義陣列後可以用sizeof命令獲得陣列的長度 可容納元素個數 如 通過傳遞陣列名引數到子函式中,以獲得陣列長度是不可行的。如 intgetlength inta 因為,a是函式引數,到了本函式中,a只是乙個指標 位址,系統在本函式執行時,是不知道a所表示的位址有多大的資料...
lua中獲取table長度的問題
官方文件是這麼描述 的 取長度操作符寫作一元操作 字串的長度是它的位元組數 就是以乙個字元乙個位元組計算的字串長度 tablet的長度被定義成乙個整數下標n。它滿足t n 不是nil而t n 1 為nil 此外,如果t 1 為nil,n就可能是零。對於常規的陣列,裡面從 1 到n放著一些非空的值的時...
如何獲取陣列的長度
c語言中,定義陣列後可以用sizeof命令獲得陣列的長度 可容納元素個數 如 通過傳遞陣列名引數到子函式中,以獲得陣列長度是不可行的。如 intgetlength inta 因為,a是函式引數,到了本函式中,a只是乙個指標 位址,系統在本函式執行時,是不知道a所表示的位址有多大的資料儲存空間,這裡只...