检查 Lua 中超过 2 个值之间的相等性
Check for equality between more than 2 values in Lua
在 Lua 5.3.3 中,两个值之间的等式使用 ==
运算符正常工作。
但是,两个以上的值之间的相等性不起作用。
> print(1 == 1 == 1)
false
>
如何检查 Lua 中是否有 2 个以上的值彼此相等?
您应该一次比较 2 个值:
print((1 == 1) and (1 == 1))
如果你有特殊需求,如果这种方式不能接受,那么你也可以写一个专门的函数:
function EqualsAll (Values, Number)
local Equals = true
local Index = 1
while (Equals and (Index <= #Values)) do
if Values[Index] == Number then
Index = Index + 1
else
Equals = false
end
end
return Equals
end
您可以按如下方式使用它:
> EqualsAll({1, 2, 3}, 1)
false
> EqualsAll({1, 1, 1}, 1)
true
在 Lua 5.3.3 中,两个值之间的等式使用 ==
运算符正常工作。
但是,两个以上的值之间的相等性不起作用。
> print(1 == 1 == 1)
false
>
如何检查 Lua 中是否有 2 个以上的值彼此相等?
您应该一次比较 2 个值:
print((1 == 1) and (1 == 1))
如果你有特殊需求,如果这种方式不能接受,那么你也可以写一个专门的函数:
function EqualsAll (Values, Number)
local Equals = true
local Index = 1
while (Equals and (Index <= #Values)) do
if Values[Index] == Number then
Index = Index + 1
else
Equals = false
end
end
return Equals
end
您可以按如下方式使用它:
> EqualsAll({1, 2, 3}, 1)
false
> EqualsAll({1, 1, 1}, 1)
true