• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Lua > Lua判断Table是否为空的方法(空的table即{})

Lua判断Table是否为空的方法(空的table即{})

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了lua table,lua中table.sort,lua 打印table,lua table.insert,lua table.remove等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

判断方法结论:
a={}
if next(a) ~=nil then dosomething end
</div>

    最近在项目里面大量使用的lua,其中lua的table是lua中重要的数据结构,可以被用来当做C++中的数组,vector,map来使用。

    如何判断lua中的table是否是空的table呢?

    一开始我没动脑子,是这样写的:
a={}
if a ==nil then dosomething end
</div>
    这个方法错误是显而易见的,在lua中a其实是一个指针,指向了table的结构,所以这个方法其实是比较地址是否为空,显然错了。

    之后我改进了下,代码如下:
a={}
if a=={} then dosomething end
</div>
    仔细一看上面的改进,相当于没改,这里的a指针比较的还是一个匿名的地址,肯定是false。

    之后我这样想,空table的size肯定为0,那我直接判断表的大小不就完了嘛,于是我借助#操作符,代码改进为:
a={}
if #a==0 then dosomething end
</div>
    但是问题来了,#操作符要求table中的项都不为nil,悲剧!之后我想到了table.maxn内置函数,于是代码继续改成:
a={}
if table.maxn(a) == 0 then dosomething end
</div>
    不容易啊,程序可以跑了,但是查阅了下相关资料,maxn函数是根据每一项的hash来判断的,这样写代码也很保险,除非你的table是全数字的键。

    最后才想起用泛型方法遍历一个table时使用的内置next函数,代码改进如下:
a={}
if next(a) ~=nil then dosomething end
</div>

</div>

您可能想查找下面的文章:

  • Lua函数用法研究
  • 举例讲解Lua中的Table数据结构
  • Lua 数学库的所有函数功能作用一览
  • Lua table中安全移除元素的方法
  • 详解Lua中的数据类型
  • Lua中遍历文件操作代码实例
  • lua中赋值类型代码详解
  • Lua教程(十四):字符串库详解
  • Lua教程(十二):面向对象编程
  • Lua教程(十): 全局变量和非全局的环境

相关文章

  • C语言中调用Lua函数实例
  • lua日志文件处理代码
  • lua开发中实现MVC框架的简单应用
  • ubuntu 14.04下熟悉lua的语法
  • Lua中实现sleep函数功能的4种方法
  • Lua教程(十九):C调用Lua
  • Lua中强大的元方法__index详解
  • Lua中string.lower()使用指南
  • Lua中的string库(字符串函数库)总结
  • Lua教程(二):语法约定

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Lua利用cjson读写json示例分享
    • Lua教程(三):值与类型介绍
    • Lua脚本自动生成APK包
    • Lua table类型学习笔记
    • Lua中的弱引用介绍
    • 浅谈Lua语句
    • Lua中break语句的使用方法详解
    • lua脚本实现自动生成APK包
    • Lua检测数组(tabble)中是否包含某个值
    • Lua中table的遍历详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有