我正在以下列方式设置本地动态变量名称
_local["cracks"..brick.index] = ...
我怎么能访问变量来做例如removeSelf?
我试过的
_local["cracks"..brick.index]:removeSelf()
答案 0 :(得分:5)
_local["cracks"..brick.index]:removeSelf()
_local
索引为"cracks"..brick.index
的表格以获取值,将其称为t
t
索引为"removeSelf"
的表格以获取另一个值,将其称为m
m
中调用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
变量,你就无法做到这一点,在这种情况下,没有。{/ p>
或者,明确地
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
如果这不能解释您的问题,请在问题中添加更多代码。
答案 1 :(得分:2)
没有。你做错了。这是你应该怎么做的:
local myTable = {}
myTable[brick.index] = image
然后你可以访问它:
myTable[brick.index]:removeSelf()