Lua:从字符串调用metatable函数

时间:2012-08-12 09:26:43

标签: lua

我有这个功能:

function Bootstrap: test()
-- CODE HERE
end

我会从它的名字中调用这个函数。

此示例有效:

function callFunc()
    c = "Bootstrap"
    _G[c].test()
end

我需要做这样的事情:

function callFunc()
    c = "Bootstrap"
    f = "test"
    _G[name].[f]() -- Bootstrap.test()
end

但是有一个错误:

'<name>' expected near '['

我该怎么办?谢谢。

1 个答案:

答案 0 :(得分:3)

这里不需要

.。写_G[name][f]()

.name只是一个语法糖,完全等同于["name"],这个地方显然不是你应该使用它的地方。

顺便说一句,这与metatables或从字符串调用无关。你只是访问一个表的元素,而不是另一个表,第二个表中的访问元素,恰好是函数并调用它。