我必须比较多个变量并检查它们是否不同。有没有顺利的方法来做到这一点?我能做到
var1 = 3
var2 = "test"
var3 = 100
if var1 != var2 && var1 != var3 && var2 != var3
...
end
但是如果变量列表越来越长,这就变得不方便了。我想过像var1 != var2 != var3
这样的东西,但这不起作用。所以也许有一种简单的Ruby方法可以做到这一点。
答案 0 :(得分:3)
一种方法可能是使用Array#uniq。
inputs = [var1, var2, var3]
if inputs.uniq == inputs
# ...
end
# or
if inputs.uniq.length == inputs.length
# ...
end
答案 1 :(得分:3)
您可以使用uniq
的破坏性对应uniq!
来确定数组是否包含重复项。如果没有找到重复项,则返回nil
:
if ![var1, var2, var3].uniq!
# no duplicates
end
答案 2 :(得分:2)
你可以做这样的事情
a = [var1. var2, var3]
if a.length == a.uniq.length
..
end
答案 3 :(得分:0)
您可以使用映射来存储它们,并将其长度与输入变量进行比较。