相关疑难解决方法(0)

我需要澄清Metatable .__ index

我之前问过为什么我的方法不是由Lua找到我的方法,并且被告知通过设置__index我的metatable,它会解决问题,所以我假设一个方法被调用时是通过metatable中的索引进行搜索,但我已经遇到了一个问题,现在我需要使用索引括号[]我的元表,因此__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()
Run Code Online (Sandbox Code Playgroud)

lua metatable

5
推荐指数
1
解决办法
6033
查看次数

标签 统计

lua ×1

metatable ×1