2012-08-12 42 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或從字符串調用沒有任何關係。你只需訪問一個表的元素,而不是恰好是另一個表,第二個表中的訪問元素,這恰好是函數並調用它。