确保多个变量具有不同的值

时间:2013-04-12 07:53:59

标签: ruby

我必须比较多个变量并检查它们是否不同。有没有顺利的方法来做到这一点?我能做到

var1 = 3
var2 = "test"
var3 = 100

if var1 != var2 && var1 != var3 && var2 != var3
  ...
end

但是如果变量列表越来越长,这就变得不方便了。我想过像var1 != var2 != var3这样的东西,但这不起作用。所以也许有一种简单的Ruby方法可以做到这一点。

4 个答案:

答案 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)

您可以使用映射来存储它们,并将其长度与输入变量进行比较。