6

基本上,我正在尝试检查我的 6 个值是否相同。我试着把它们串起来:

if val1 == val2 == val3 == val4 == val5 == val6
  #...
end

但这会出错。这可以使用另一种方法吗?谢谢

4

3 回答 3

11

尝试这个:

if [val1, val2, val3, val4, val5, val6].uniq.count == 1
  #...
end

如果你想变漂亮,你可以试试这个

unless [val2, val3, val4, val5, val6].find{ |x| x != val1 }
  # ...
end

一旦找到不等于 的元素,上述将立即停止val1,否则将执行该块。

于 2012-11-13T23:14:18.910 回答
2

一个可爱的方式:

[val1,val2,val3,valN].uniq.size == 1

一种更平淡的方式:

[val2,val3,valN].all?{ |x| x == val1 }
于 2012-11-13T23:16:42.657 回答
2

如果值是Fixnum,这条性感的线会起作用:

if val1 == val2 & val3 & val4 & val5 & val6
  # ...
end

如果不是,那么这种脂肪适用于任何类型

if [val1] == [val2] & [val3] & [val4] & [val5] & [val6]
   # ...
end
于 2012-11-14T00:05:44.703 回答