3

3つの変数が特定の変数と等しいかどうかを確認する必要がある比較を繰り返しています。簡単にするために、私が抱えている問題を説明するシナリオを作成します。

if time == -1 and day_of_week == -1 and month == -1 

繰り返しなしでこの同じコード行を実現するための、論理的に同等の簡潔な方法があるかどうか疑問に思いました。

現在、私はこれを次のように回避する方法を使用しています。

all_equal = true
[time_now, day_of_week, month].each { |value| all_equal = false if value != -1 }
if all_equal ....

ああ、明らかにそれはかなり上回っています(そして明らかに効率が悪いです)が、繰り返しの欠如は見るのがより楽しいと思います。

これに対するより良いアプローチをお勧めしますか?

ありがとうございました!

4

1 に答える 1

6

使用Enumerable#all?

if [time_now, day_of_week, month].all? { |value| value == -1 }
  # do something
end
于 2012-08-28T05:06:46.070 に答える