以下是我的lua脚本:
local ckid = redis.pcall('get',KEYS[1])
local meta = redis.call('hgetall', ckid)
return {ckid, meta}
如果第一次调用时键没有退出,我不想执行第二次调用。
所以...我不知道None的返回值是什么。在python中,返回值为None。
if ckid ~= '???????' then
local meta = redis.call('hgetall', ckid)
else
local meta = 'empty'
retrun {ckid, meta}
所以...我该怎么做才是lua?
local ckid = redis.pcall('get',KEYS[1])
if ckid ~= nil then
local meta = redis.call('hgetall', ckid)
else
local meta = 'none'
local ckid = 'none'
end
return {ckid, meta}
使用nil ..
ResponseError: ERR Error running script (call to f_1400713412b0063a26eb0dc063f53a4e3be26380): user_script:12: Script attempted to access unexisting global variable 'meta'
答案 0 :(得分:9)
如果在if语句中定义局部变量,则它仅存在于if语句中。查看手册中的局部变量范围。
尝试
local ckid = redis.pcall('get',KEYS[1])
local meta
if ckid ~= nil then
meta = redis.call('hgetall', ckid)
else
meta = 'none'
ckid = 'none'
end
return {ckid, meta}
答案 1 :(得分:0)