Lua中的#
對字符串來說,#取字符串的長度,但對於table需要注意。
lua的table可以用數字或字符串等作為key, #號得到的是用整數作為索引的最開始連續部分的大小, 如果t[1] == nil, 即使t[5], t[6], t[7]是存在的,#t仍然為零。對於這類tb[1],tb[2]....才能獲取到正確的長度。
如果table的第一個元素key為非數字,那么#tb獲取到的長度也是0。
在平時開發過程中如果是table,不建議使用這個API。
建議方法
function table.length(t)
local i = 0
for k, v in pairs(t) do
i = i + 1
end
return i
end