Начнём с того, что объявить в lua-скрипте функцию достаточно просто:
function somefunc(key, value)
-- something
end
Однако при запуска такого кода в контексте Redis вы получите сообщение об ошибке:
[Error: ERR Error running script (call to .... @enable_strict_lua:7: user_script:1: Script attempted to create global variable 'add']
Как обойти данную ситуацию? Достаточно просто, нужно всего лишь перед объявлением функции добавить local:
local function somefunc(key, value)
-- something
end
Также можно воспользоваться ещё одним способом: объявить функцию как элемент таблицы:
local obj = {}
function obj.name(name)
return "my name is ".. name
end