枚举(在lua中称为enum)在lua5.2.4中的使用

我有一个条件,在我的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

原文链接 https://stackoverflow.com/questions/70529358

点赞
stackoverflow用户10953006
stackoverflow用户10953006

据我所知,在 Lua 中没有 enums,您可以像当前的代码一样使用字符串。这些字符串将被内部化到 Lua 虚拟机中,因此在内存中这些字符串不会被复制。

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

local COMMAND_DELETE = 1
local COMMAND_TEST_1 = 2
local COMMAND_TEST_2 = 3

其他选项是使用第三方软件包,例如 enum 包,或者更进一步地使用 Lua 预处理器

2021-12-30 08:57:13
stackoverflow用户2858170
stackoverflow用户2858170

在 Lua 中没有枚举类型。

可以简单地定义变量。

SUCCESS = "1"
FAILURE = "0"

stream:write(SUCCESS)

或将其放入一个表中,这与枚举类型语法非常相似。

Result = {SUCCESS = "1", FAILURE = "0"}
stream:write(Result.SUCCESS)
2021-12-30 09:04:16