我有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()”?
在此先感谢,问候
您需要在脚本中添加以下内容:
load(arg[1], "<string>", "t", {a = a})()
load
将加载传递的参数(arg[1]
)的内容,并返回在特定环境(以{a = a}
表格形式提供)中执行该代码的函数,因为您需要将局部变量的值传递给代码(Lua 5.2+)。
请记住,这将允许调用者将任意Lua代码传递给您的脚本,这可能是安全问题。
错误处理留给读者练习。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句