lua獲取陣列的長度

2021-09-28 23:21:52 字數 875 閱讀 3350

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

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所表示的位址有多大的資料儲存空間,這裡只...