Lua:我需要在 if 中重复变量吗?

标签 lua

当我说 如果 var == "one"or var == "two"or var == "three"or var == "four"then 并且 var 总是一样的,我能以某种方式缩短它吗,比如 if var == "one"or "two"or "three"or "four"then

我必须使用括号吗?

最佳答案

我们可以利用表格。特别是,如果 some_table 包含 some_key,则 some_table[some_key] 返回 nil,这是假的。

例如:

if ({one=1, two=1, three=1, four=1})[var] then

我使用 1 是因为它很容易输入,但您可以使用除 nilfalse 之外的任何值,因为这两个是Lua 中唯一的假值。

这会在每次评估条件时创建一个新表,因此如果您想经常检查它(例如,在紧密循环中),在外部创建表可能是值得的循环:

local CONDITION = {one=1, two=1, three=1, four=1}
...
   -- inside a loop:
   if CONDITION[var] then

关于Lua:我需要在 if 中重复变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70507236/

相关文章:

c++ - lua 5.2.1 Unresolved external 问题

java - 如何放弃 LuaJ 协程 LuaThread?

Lua需要以逗号分隔

c - 从 C 运行 luajit 目标文件

c#-4.0 - Lua脚本优化

c++ - 将 Lua 类对象存储到 C 指针并将其推回 Lua Stack

ios - 试图让 Game Center Leaderboard 正常工作

lua - Lua中pairs()的 "type signature"是什么?

c++ - 如何确定 C++ 用户类型是否已在 tolua 中注册

c - 在 Lua 注册表中存储 C 结构