我正在通过以下方式设置局部动态变量名称
_local["cracks"..brick.index] = ...
如何访问变量来执行例如 removeSelf?我试过的
_local["cracks"..brick.index]:removeSelf()
_local["cracks"..brick.index]:removeSelf()
_local
作为一个表"cracks"..brick.index
来获取一个值,调用它t
t
作为一个表"removeSelf"
来获取另一个值,调用它m
m
作为方法 in调用t
,这就像调用m(t)
为此,您必须执行以下操作:
_local["cracks"..brick.index] =
{
removeSelf = function(self)
--do something with self,
--which refers to the table that removeSelf is a member of (the {})
return --something if wanted
end
}
通常,方法是使用function t:m() end
隐式声明self
参数的语法定义的。但是,如果没有实际变量,您就无法做到这一点t
,在这种情况下没有实际变量。
或者,明确地
local tabl = {}
function tabl:removeSelf()
--do something with self,
--which refers to the table that removeSelf is a member of (tabl)
return --something if wanted
end
_local["cracks"..brick.index] = tabl
如果这不能解释您的要求,请在您的问题中添加更多代码。
不,你做错了。这是您应该如何做的:
local myTable = {}
myTable[brick.index] = image
然后你可以访问它:
myTable[brick.index]:removeSelf()