zoukankan      html  css  js  c++  java
  • Lua中巧妙的获取函数的参数个数

    function getArgs(fun)
        local args = {}
        local hook = debug.gethook()
        local argHook = function(...)
            local info = debug.getinfo(3)
            for k,v in pairs(info) do
            	print(k,v)
            end
            if "pcall" ~= info.name then
                return
            end
            for i = 1, math.huge do
                local name, value = debug.getlocal(2, i)
                print(i, name, value)
                if "(*temporary)" == name then
                    debug.sethook(hook)
                    error("")
                    return
                end
                table.insert(args, name)
            end
        end
        debug.sethook(argHook, "c")
        pcall(fun)
        return args
    end
    
    function test(a, b, c)
    	print(a,b,c)
    end
    
    
    local t = getArgs(test)
    for k,v in pairs(t) do
    	print(k,v)
    end
    

      

  • 相关阅读:
    后台执行linux命令
    日志
    配置文件
    后台
    后台代码注释
    递归建立文件夹
    图片合成
    java.awt.Font
    java-日期取特定值
    linux乱码
  • 原文地址:https://www.cnblogs.com/zitonglove/p/10058162.html
Copyright © 2011-2022 走看看