2012-08-12 44 views
1

调用元表功能我有这样的功能:的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 '[' 

我该怎么办?谢谢。

回答

3

.在这里是不必要的。写_G[name][f]()

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

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