转) 关于lua table是否为空的判断
来源:互联网 发布:制作音效的软件 编辑:程序博客网 时间:2024/06/05 16:39
(转) 关于lua table是否为空的判断
在项目的脚本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/
阅读全文
0 0
- 转) 关于lua table是否为空的判断
- 关于lua table是否为空的判断
- lua table是否为空的判断
- 【lua】table是否为空的判断
- 【lua】table是否为空的判断
- Lua中判断table是否为空
- 关于String是否为空的判断
- js判断table是否为空
- lua next 用法 table 空的判断
- lua next 用法 table 空的判断
- lua next 用法 table 空的判断
- iOS 关于对象是否为空值的判断
- 关于JS判断字符串是否为空的讨论
- lua table中如何判断为空表
- 关于判断字符串是否为空
- 判断是否为空
- 判断是否为空
- 判断是否为空
- 【数据库系统概念】第1-3章 数据库基础知识入门 知识总结
- SSH——上传单个图片
- Spark源码--Stage
- 栈与队列【每日一题】
- Linux下批量Kill多个进程
- 转) 关于lua table是否为空的判断
- PAT (Advanced Level) Practise 1043 Is It a Binary Search Tree (25)
- HTML5中了不起的离线应用
- C++类库bitset<>简介
- linux修改Ubuntu的aptget源
- POJ 3067 Japan 笔记
- Android如何让APP进程常驻内存?
- 第1节-Linux学习
- 替换空格【每日一题】