2013-03-14 365 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