比较多个变量。

我有几个带有2个参数的变量,我想比较一个值和它们,并修改那些相等的变量在同一时间内,而不用写每一个可能的如果mynumber == x,那么x=(“NewValue”)elseif mynumber == y then .......,因为我有很多变量要检查。

示例:

x = 5 and ("Five")

y = 2 and ("Two")

z = 10 and ("Ten")

mynumber = io.read()

现在在所有变量中检查是否有一个等于mynumber,并将该(这些)变量更改为XXX。

那么,您是否知道如何做到这一点?

点赞
用户646619
用户646619

使用表格:

local lookup = {
    foo = "bar",
    bar = "baz",
    baz = "foo",
    ["some thing"] = "other thing",
}

local x = "foo"
x = lookup[x]

如果你尝试将单词转换成数字:

local lookup = {
    One = 1,
    Two = 2,
    Three = 3,
    -- 继续添加需要的数字
}

local x = "Two"
print(lookup[x]) -- 输出2

local y = 3
print(lookup[y]) -- 输出nil,数字3不在表中

-- 更好的方式:
print(lookup[x] or x) -- 输出2,因为在lookup表中有真值为x的条目
print(lookup[y] or y) -- 输出3;在lookup表中没有真值为y的条目,但y为真值,所以使用y。

这比一个大型if-else链更实用,但对于更大的数字仍然可能不方便。如果需要支持这些数字,您可能需要将每个数字的单词拆分(例如,将"Thirty Two"拆分为{"Thirty","Two"})。

2014-11-13 21:17:05