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 是空表
]]--

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值