2013-03-14 112 views
1

有它有很多方法的對象client,方法可以像client:hget(key, field)client:exists(key)如何通過方法調用的名稱LUA方法

被調用現在,我需要實現一個功能client_holder.call(cmd, ...)

local client = client_instance; 
function call(cmd, ...) 
    client[cmd](client, ...) // will this work?? 
end 

回答

2

是的,這應該工作。作爲手動的Lua states,冒號表示法僅僅是語法糖:

形式

functioncall ::= prefixexp ‘:’ Name args 

可以用來調用「方法」。調用v:name(args)是v.name(v,args)的語法糖,只是v只計算一次。

+0

是的,它的工作原理。我測試它。 – 2013-03-14 06:51:30