我有一个重复的比较,我必须检查三个变量是否等于某个变量。为简单起见,我将创建一个场景来说明我遇到的问题。
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 ....
哈,显然它已经超过了顶级(显然效率不高),但我发现重复的缺乏更令人满意。
你会建议一个更好的方法吗?
谢谢!
答案 0 :(得分:6)
if [time_now, day_of_week, month].all? { |value| value == -1 }
# do something
end