Mat*_*zer 5 lua arguments set redis
例如,可以使用以下命令将多个成员添加到Redis 中的某个集合中sadd:
sadd myset 38 484 2 92 1
Run Code Online (Sandbox Code Playgroud)
在 Lua 中,我发现我可以执行如下相同的操作:
redis.call("SADD", "myset", "38", "484", "2", "92", "1")
Run Code Online (Sandbox Code Playgroud)
但是,当调用者不知道将提供多少参数时会发生sadd什么?
在 JavaScript 中,有一个Function.apply(...)函数可以让我们以数组的形式提供参数:
// Source function would look like this: function X(a, b, c) { ... }
X.apply(this, [38, 484, 2]);
Run Code Online (Sandbox Code Playgroud)
如何在 Lua 和 Redis 中实现相同的目标?
您可以使用 unpack 创建类似的功能来应用:
function apply(f, args) f(unpack(args)) end
function X(a, b, c) print(a, b, c) end
apply(X, {38, 484, 2})
Run Code Online (Sandbox Code Playgroud)
或者直接解压:
X(unpack{38, 484, 2})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
979 次 |
| 最近记录: |