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