这篇文章主要介绍“lua中怎么求table的长度”,在日常操作中,相信很多人在lua中怎么求table的长度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”lua中怎么求table的长度”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
固阳网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
取长度操作符写作一元操作#。字符串的长度是它的字节数(就是以一个字符一个字节计算的字符串长度)。
tablet的长度被定义成一个整数下标n。它满足t[n]不是nil而t[n+1]为nil;此外,如果t[1]为nil,n就可能是零。对于常规的数组,里面从1到n放着一些非空的值的时候,它的长度就精确的为n,即最后一个值的下标。如果数组有一个"空洞"(就是说,nil值被夹在非空值之间),那么#t可能是指向任何一个是nil值的前一个位置的下标(就是说,任何一个nil值都有可能被当成数组的结束)。
localtblTest2=
{
1,
a=2,
3,
}
print(table.getn(tblTest2))
这段代码输出的结果是多少?这里的输出结果应该是2。首先,要明白,这个ctblTest2c不是一个简单的ctable,它混合了列表(list)和记录(record)两种风格,表中,a=2是record风格。其次,要明白,record风格的record是不作为外表的长度计算。你可以把它想象成一个函数,跟其他面向对象语言一样,函数是不记为内部变量的。
既然像函数一样,那就可以输出a的值,是的。print(tblTest2.a)就可以了。
table.getn(t)等价于#t。
以下情况相当纠结,可直接看最后一句话总结:
现在来看一个比较纠结的:
localtblTest4=
{
1,
nil,
}
print(table.getn(tblTest4))
这段代码输出的结果是多少?是1。我们都知道table获取长度的时候,会遍历一下整个表,在最后一个非nil处,就会返回。
如果你继续往后面加nil,你可能会发现点什么。你可能认为你发现的是个规律。但是,你千万不要认为这是个规律。因为这是错误的。
1、在table中不要使用nil
2、如果非要使用nil,必须用table.setn()函数去设置这个table表的长度。注意:新版本的lua已经不支持setn了。
结论:
setn函数已过时,不要在lua的table中使用nil值,如果一个元素要删除,直接remove,不要用nil去代替。
到此,关于“lua中怎么求table的长度”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
分享文章:lua中怎么求table的长度
转载来于:http://lswzjz.com/article/gcdecp.html