在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
这里的函数主要用来做:计算table元素个数。参考资料为quick_cocos. 星月倾心贡献~~~ 我们先看一段代码 local tbl = { [1] = 2, [2] = 2, [3] = 3 } print( "tbl length is " .. #tbl ) 这段代码是获得tbl的长度,即元素个数。 输出: tbl length is 3 拥有三个元素,没有问题。我们注意到元素的下标是,即key值是:1, 2, 3。即tbl[1], tbl[2], tbl[3]。如果,我们把下标修改,key修改后会怎么样呢? local tbl = { [1] = 2, [5] = 2, [3] = 3 } print( "tbl length is " .. #tbl ) 输出: tbl length is 1 旁白不出来吼两句么~~~(小白:为什么是1,不是三个元素吗???) 再看两个例子: local tbl = { [4] = 2, [5] = 2, [3] = 3 } print( "tbl length is " .. #tbl ) 输出: tbl length is 0 local tbl = { ["a"] = 2, ["b"] = 2, ["c"] = 3 } print( "tbl length is " .. #tbl ) 输出: tbl length is 0
现在进入本章正题,获得table的元素个数方法,代码如下 --[[ -- 计算表格包含的字段数量 -- lua table 的 “#” 操作只对依次排序的数值下标数组有效,table.nums() 则计算 table中所有不为 nil 的值的个数。 -- @param t 要检查的表格(t表示是table) -- @return integer 返回表格的字段数量 --]] function table.nums( t ) local count = 0 local t = checkTable( t ) for k, v in pairs( t ) do count = count + 1 end return count end checkTable是我之前写的文章中的一个函数,附上链接:http://www.cnblogs.com/wodehao0808/p/4015648.html。 通过这个table.nums方法就能够获得说有元素了。附上示例: local tbl = { [4] = 2, [5] = 2, [3] = 3 } print( "tbl length is " .. table.nums( tbl ) ) 输出: tbl length is 3 本章到此结束,小白,你明白没有...(小白:我智商251的,好不...。) (小白:...)
再结束时再说明以下for循环的pairs和ipairs的区别: pairs会返回key,value。能遍历table所有元素,但是,pairs遍历是随机遍历的,无序的。(星月:被这个特性吭过...) ipairs则是遍历数组的,类似与#tbl获得元素个数方法。也是从1开始的,顺序递增查找。因为是递增查找,所以ipairs是有序查找。
唠叨到此结束~~~
作者使用 cocos2d-x 3.0 + lua学习和工作心得,未经作者允许,请勿转载!在此谢谢各位手下留情~~~ 本文没有获得作者本人同意,不得转载,否则必追究相关责任。转载请注明出处!!~~ 原文地址:http://www.cnblogs.com/wodehao0808/p/4021921.html |
请发表评论