lua求表长
答案:1 悬赏:40 手机版
解决时间 2021-11-12 00:00
- 提问者网友:末路
- 2021-11-11 11:13
lua求表长
最佳答案
- 五星知识达人网友:十鸦
- 2021-11-11 11:45
你 #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)
--- 获取数组长度
-- @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)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯