• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Lua获取table的长度

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
#!/usr/bin/lua

-- Lua获取tbale长度算法

--[[
Lua很少使用求长度的算法,
假设table的类型是数组,可以使用tbale.getn(table)或者#
但是也有风险,如果数组中有元素的值是nil,那么计算长度就会出错
假设tbale是键值对,那么tbale.getn(table)或者#都无法使用,只能使用pairs()迭代器的方式
]]

local t1={1,2,3,4,5,6,7,8,9}
local t2={a=1,b=2,c=3,d=4,e=5}

-- 计算数组的长度
print("t1 length is ",table.getn(t1))
print("t1 length is ",#t1)

-- 计算键值对的长度
local l = 0
for _,_ in pairs(t2)
do
    l=l+1
end
print("t2 length is ",l)


-- 计算table的长度(Metatable)
--[[
Lua 5.1版本不支持__len
function len_event (op)
   if type(op) == "string" then
     return strlen(op)         -- 原生的取字符串长度
   elseif type(op) == "table" then
     return #op                -- 原生的取 table 长度
   else
     local h = metatable(op).__len
     if h then
       -- 调用操作数的处理器
       return h(op)
     else  -- 没有处理器:缺省行为
       error(···)
     end
   end
 end
]]

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua中“.”调用方法与“:”调用方法的区别发布时间:2022-07-22
下一篇:
lua中dofile、loadfile、require区别发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap