我有一个重复的比较,我必须检查三个变量是否等于某个变量。为了简单起见,我将创建一个场景来说明我所遇到的问题。
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 ....哈哈,显然它有点过了头(而且显然效率较低),但我发现没有重复更令人愉悦。
你能推荐一个更好的方法来解决这个问题吗?
谢谢!
发布于 2012-08-28 13:06:46
使用Enumerable#all?
if [time_now, day_of_week, month].all? { |value| value == -1 }
# do something
endhttps://stackoverflow.com/questions/12153055
复制相似问题