3

我必须比较多个变量并检查它们是否不同。有什么流畅的方法可以做到这一点吗?我可以

var1 = 3
var2 = "test"
var3 = 100

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

但是,如果变量列表越来越长,这就变得不方便了。我想过类似的事情,var1 != var2 != var3但这不起作用。所以也许有一个简单的 Ruby 方式来做到这一点。

4

4 回答 4

3

您可以使用uniq' 破坏性对应物uniq!来确定数组是否包含重复项。nil如果没有找到重复项,则返回:

if ![var1, var2, var3].uniq!
  # no duplicates
end
于 2013-04-12T09:09:19.850 回答
3

一种方法可能是使用 Array#uniq。

inputs = [var1, var2, var3]

if inputs.uniq == inputs
  # ...
end

# or

if inputs.uniq.length == inputs.length
  # ...
end
于 2013-04-12T07:58:25.660 回答
2

你可以做这样的事情

a = [var1. var2, var3]

if a.length == a.uniq.length
 ..
end
于 2013-04-12T07:58:34.717 回答
0

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

于 2013-04-12T07:56:53.460 回答