lua table中判空
来源:互联网 发布:手机装机必备软件 编辑:程序博客网 时间:2024/05/23 01:57
在项目的脚本lua中经常有这样的需求,
1、local a = {}
2、对a进行处理
3、对a是否为空表进行判断
关于对a是否为空表的判断,我发现有些代码如此做:
if a == {} then
这样的结果就是a == {}永远返回false,是一个逻辑错误。因为这里比较的是table a和一个匿名table的内存地址。
也有些代码如此做:
if table.maxn(a) == 0 then
这样做也不保险,除非table的key都是数字,而没有hash部分。
难道真的要遍历table发现有东西就return false跳出才能断定它是否为空吗?这样写至少代码太难看.
网上小搜了一下,发现原来官方手册里早已经给了答案,那就是靠lua内置的next函数
即如此用:if next(a) == nil then
next其实就是pairs遍历table时用来取下一个内容的函数.
在项目的module中最好封装一下,免得module本地也有next函数
于是封装后判断的lua table是否为空的函数如下:
function table_is_empty(t)
return _G.next( t ) == nil
end
原地址 http://yy1983228.blog.163.com/blog/static/54211491200881092239485/
- lua table中判空
- lua--table
- Lua table
- lua table
- 【Lua】table
- lua-table
- Lua #table
- Lua Table
- lua table
- [Lua] Lua print table
- 【Lua】Lua中的Table操作
- 【lua】Lua中的table函数库
- lua table note,table.sort ,table.concat
- LUA中的TABLE函数库
- LUA中的TABLE函数库
- lua的TABLE性质
- Lua中的table函数库
- LUA中的TABLE函数库
- 海量数据处理全集
- 如何在Linux下清除系统日志
- ADO连接ACCESS数据库
- POJ 3311--Hie with the Pie(状压dp+TSP)
- 手动添加DataTable
- lua table中判空
- hdu 4280 Island Transport
- latex一行结尾为何常加一个%
- JQuery对HTML中input操作,注意先后顺序
- VC中判断文件是否存在
- Loadrunner11破解详解
- C#索引器
- Struts2+Spring+Hibernate整合过程详解
- Linux系统监控工具(常用命令)