Lua判断空表的正确姿势

作者:ms2008

编辑:糖果

if t == {} then

这样的结果就是 t == {} 永远返回 false,是一个逻辑错误。因为这里比较的是 table t 和一个匿名 table 的内存地址。

if table.maxn(t) == 0 then

这样做也不保险,除非 table 的 key 都是数字,而没有 hash 部分。

if next(t) == nil then

next 其实就是 pairs 遍历 table 时用来取下一个内容的函数。在项目的 module 中最好封装一下,免得 module 本地也有 next 函数。封装后判断的 lua table 是否为空的函数如下:

function table_is_empty(t) 
    return _G.next(t) == nil 
end

糖果实验室编辑整理

糖果

糖果

糖果
LUA教程

如果不小心安装错 SQL Server 为 Evaluation 的版本,要小心当超过 180 天之后,系统就会无法正常使用了 这几天遇到一个蛮特别的案例,原本收到的问题是 “维护计划” 忽然无法使用,即便是里面没有任何的Task,都无法顺利地执行。但从对方所提供的错误消...… Continue reading

PLUM NIZ静电容键盘怎么样?

Published on September 25, 2020

程序员如何选择合适的机械键盘

Published on September 18, 2020