解析参数到Lua文件

tuxd3v

我有File:data.lua

#! /usr/bin/env lua
local a = {
    b = {
        c = {
            version = "z.y"
        },
        d = {
            version = "z.w"

        },
        getcversion = function ( self )
            print( self.c.version )
        end
    }
}

现在我需要'getcversion()'函数。

a.b:getcversion()

问题是,我需要从外部调用它:

data.lua "a.b:getcversion()"

我尽力了,但是解决不了。

有谁知道我怎么称呼“ getcversion()”?

在此先感谢,问候

保罗·库尔琴科(Paul Kulchenko)

您需要在脚本中添加以下内容:

load(arg[1], "<string>", "t", {a = a})()

load将加载传递的参数(arg[1]的内容,并返回在特定环境(以{a = a}表格形式提供)中执行该代码的函数,因为您需要将局部变量的值传递给代码(Lua 5.2+)。

请记住,这将允许调用者将任意Lua代码传递给您的脚本,这可能是安全问题。

错误处理留给读者练习。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章