关闭

小明同学写的打印lua表名称

129人阅读 评论(0) 收藏 举报
分类:

g_tableText = {}
local l_tableText = {}


local function print_var_name(var)


	for k, v in pairs(_G) do
		if v == var then
			print(k)
			return
		end
	end


	local n = 1
	local stack = 2
	while true do
		local name, value = debug.getlocal(stack, n)
		if not name then 
			stack = stack + 1 
			if n == 1 then break end --空栈
			n = 1
		else
			if value == var then
				print(name)
				return
			end
			n = n + 1
		end		
	end
end


print_var_name(g_tableText)
print_var_name(l_tableText)

 --debug.getlocal(栈级别, 变量索引(1-n)) 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19030次
    • 积分:557
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:23篇
    • 译文:0篇
    • 评论:3条
    最新评论