有一个对象client
有很多方法,方法可以被调用client:hget(key, field)
等等client:exists(key)
。
现在,我需要实现一个功能client_holder.call(cmd, ...)
local client = client_instance;
function call(cmd, ...)
client[cmd](client, ...) // will this work??
end
有一个对象client
有很多方法,方法可以被调用client:hget(key, field)
等等client:exists(key)
。
现在,我需要实现一个功能client_holder.call(cmd, ...)
local client = client_instance;
function call(cmd, ...)
client[cmd](client, ...) // will this work??
end
是的,这应该有效。正如 Lua 手册所述,冒号符号只是语法糖:
表格
functioncall ::= prefixexp ‘:’ Name args
可以用来调用“方法”。调用 v:name(args) 是 v.name(v,args) 的语法糖,除了 v 只计算一次。