枚举(lua中的enum)。想在lua5.2.4中使用enum

ayu*_*ain 10 lua enums freeswitch

我有一个条件,在我的 lua 脚本中我想使用枚举,对于成功,我可以给出 1,对于失败,我可以给出 0 我正在使用 lua 版本 5.2.4 任何人都可以帮助我如何使用我想使用的枚举枚举

elseif(cc_config_cmd == "DELETE" and file_found==1)then
            api:executeString("callcenter_config queue unload " .. queue_name)
            stream:write("1")
else
            stream:write("0")

end
Run Code Online (Sandbox Code Playgroud)

Pig*_*let 21

Lua 中没有枚举。

只需定义变量即可。

SUCCESS = "1"
FAILURE = "0"

stream:write(SUCCESS)
Run Code Online (Sandbox Code Playgroud)

或者将其放入与枚举样式语法非常相似的表中。

Result = {SUCCESS = "1", FAILURE = "0"}
stream:write(Result.SUCCESS)
Run Code Online (Sandbox Code Playgroud)

  • 对此“将枚举值放入表中”的建议表示支持! (3认同)

Rob*_*ert 1

据我所知,没有enumsin Lua,您可以使用字符串,例如您当前的代码。字符串将被保留在 内部Lua Virtual Machine,因此在内存中字符串不会重复。

另一种选择是使用数字代替字符串。

local COMMAND_DELETE = 1
local COMMAND_TEST_1 = 2
local COMMAND_TEST_2 = 3
Run Code Online (Sandbox Code Playgroud)

其他选项是使用第三方包,例如enum包,或者可能更进一步并使用Lua Preprocessor