1

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
4

1 に答える 1

2

はい、うまくいくはずです。Lua のマニュアルに記載されているように、コロン表記は単なる構文糖衣です。

フォーム

functioncall ::= prefixexp ‘:’ Name args

「メソッド」を呼び出すために使用できます。呼び出し v:name(args) は v.name(v,args) のシンタックス シュガーですが、v は 1 回だけ評価されます。

于 2013-03-14T05:39:51.930 に答える