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 に答える