永发信息网

lua求表长

答案:1  悬赏:40  手机版
解决时间 2021-11-12 00:00
lua求表长
最佳答案
你 #table_name 取的不一样,很可能是 table 不是 LUA顺序数组(索引从 1开始)
--- 获取数组长度
-- @param arr 指定的数组 type(arr) == "table"
function get_array_len(arr)
    return #arr
end

function dynamic_get_array_len(table_name)
    if _G[table_name] and type(_G[table_name]) == "table" then
        --return loadstring("return #"..table_name)()
        return #_G[table_name]
    end
    return print("输入参数 table_name 有误!")
end

-- 用lua编译器返回找全局变量,由于lua已经有_G标签,因此这样使用没有实际价值
function dynamic_get_array_len_useless(table_name)
    if _G[table_name] and type(_G[table_name]) == "table" then
        return loadstring("return #"..table_name)()
    end
    return print("输入参数 table_name 有误!")
end



----------------------------------------
-- rem
----------------------------------------

arr = {1,2,3,4}
tbl = {
    [0] = 0;
    [1] = 1;
    ["2"] = 2;
    [3] = 3;
}


print(get_array_len(arr))   -- 4
print(get_array_len(tbl))   -- 1

-- when arr 和 tbl 是全局变量
local table_name = io.read()    -- 输入的变量必须是全局变量名称
print(dynamic_get_array_len(table_name))   -- 可试验 dynamic_get_array_len_useless(table_name)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
2013年sbs歌谣大战为什么宋茜站在小舞台上
#30机油是什么级别的机油?
alotof怎么读?
身高1.55米,体重90斤。请问穿多大号上衣,裤
手链串多少颗
什么是价值观,人生观,世界观和爱情观?
揭阳市到成都的大巴!去那个车站
佳明运动数据怎么上传不到微信运动?
文化部门依法禁止在中小学校园周围()百米范围
关联词:()刮风下雨玲玲()不来我家 ()
a三纸有多大?
我想问一下造纸是不是要打很细的,要多少目的
四川达州去清海多少公里
「目に入る」「目に付く」「目に留まる」 的
d-ink504m 硬件版本 : B1 固件版本 : v2.00
推荐资讯
我下问是配眼镜戴还是用隐形眼镜
人们为什么厌恶风险
天下贰一朵荷曲终之瓣
我不是针对谁,恕我直言
我占了一个卦,怎么解?
条件随机场的条件随机域(场)
米切尔·汤普森的生涯数据
为什么网购的助听 器听起来很吵,根本没法戴
用眼过度怎么办
中国建设银行ATM(五华路)地址在哪,我要去那
宝骏560汽车是三缸发动机吗
考研建筑物理应该怎么复习?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?