当我说
如果 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
是因为它很容易输入,但您可以使用除 nil
或 false
之外的任何值,因为这两个是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/