lua判斷一個表是否爲空表

1、有人會直接用表與{}比較

local a = {}

if a == {} then
    print("a 是空表")
else 
    print("a 不是空表")
end

答案可能出乎你的意外,最後打印的是:a不是空表。因爲table是引用變量,所以這裏比較的是a的地址和匿名table的地址,所以是不相等的。

2、還有人可能用table.maxn()

local a = {key = 1}

if table.maxn(a) == 0 then
    print("a 是空表")
else 
    print("a 不是空表")
end


--[[
a 是空表
]]--

這個時候明明a不是空的但是用table.maxn卻返回0,這是因爲table.maxn返回的是數組形式的表的長度。

3、其實這裏可以用到lua再帶的函數next

local a = {}

if next(a) == nil then
    print("a 是空表")
else 
    print("a 不是空表")
end

--[[

a 是空表
]]--

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章