Function 在LUA中-已找到类型为“的变量”;功能“;如何将参数传递给它

Function 在LUA中-已找到类型为“的变量”;功能“;如何将参数传递给它,function,lua,globals,Function,Lua,Globals,我已经成功地在_G中的一个表中找到了函数,对于那些不需要参数的函数,我使用如下语法调用它们: a = _G[t] [f] () 但有些函数需要参数,我尝试使用 a = _G[t] [f] (x) 但是来自LUA的错误消息似乎表明被调用函数没有收到“x” 因此,我的问题是,如果函数定义为 function t:f (arg) 当我有t和f的文本字符串时,我如何给它一个要处理的参数 感谢定义如下的函数 函数t:f(arg) 具有隐式的第一个参数self,因此定义实际上与: 函数t.f(se

我已经成功地在_G中的一个表中找到了函数,对于那些不需要参数的函数,我使用如下语法调用它们:

a = _G[t] [f] () 
但有些函数需要参数,我尝试使用

a = _G[t] [f] (x)
但是来自LUA的错误消息似乎表明被调用函数没有收到“x”

因此,我的问题是,如果函数定义为

function t:f (arg)
当我有t和f的文本字符串时,我如何给它一个要处理的参数


感谢

定义如下的函数

函数t:f(arg)
具有隐式的第一个参数
self
,因此定义实际上与:

函数t.f(self,arg)
因此,当您调用
a=_G[“t”][“f”](x)
时,您将以self的身份传入
x
,并且
arg
设置为nil。要正确地称呼它,您需要执行以下操作

\u G[“t”][“f”](\u G[“t”],arg);

一些示例代码,以便您可以看到这一点

t={}
函数t:f(arg)
打印(self,arg)
结束
_G[“t”[“f”](“测试”)-“测试无”
_G[“t”][“f”](_G[“t”],“测试”)-“表:00e09750测试”

太好了-谢谢-就这样!!!