我之前问过为什么 Lua 没有找到我的元表方法,并被告知通过设置__index
我的元表可以解决问题,所以我假设调用时的方法是通过元表中的索引搜索,但我现在遇到了一个问题,我需要在我的元表上使用索引括号[
,]
因此__index
被分配从其中的表中返回索引,我如何解决使用方法和使用的功能需求索引括号
我写了一个最小的例子来说明问题:
TestMetatable = {DataTable = {}}
TestMetatable.__index = TestMetatable
function TestMetatable.new()
local Tmp = {}
setmetatable(Tmp,TestMetatable)
Tmp.DataTable = {1}
return Tmp
end
function TestMetatable:TestMethod()
print("Ran Successfully")
end
function TestMetatable.__index(self,index)
return self.DataTable[index]
end
local Test = TestMetatable.new()
-- both functionalities are needed
print(Test[1])
Test:TestMethod()