首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘’DRY‘up my Ruby Syntax

‘’DRY‘up my Ruby Syntax
EN

Stack Overflow用户
提问于 2012-08-28 13:02:33
回答 1查看 58关注 0票数 3

我有一个重复的比较,我必须检查三个变量是否等于某个变量。为了简单起见,我将创建一个场景来说明我所遇到的问题。

代码语言:javascript
复制
if time == -1 and day_of_week == -1 and month == -1 

我想知道是否有一种简洁的、逻辑上等价的方法来实现相同的代码行而不重复。

现在,我使用一种间接的方法来完成此操作,如下所示:

代码语言:javascript
复制
all_equal = true
[time_now, day_of_week, month].each { |value| all_equal = false if value != -1 }
if all_equal ....

哈哈,显然它有点过了头(而且显然效率较低),但我发现没有重复更令人愉悦。

你能推荐一个更好的方法来解决这个问题吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-28 13:06:46

使用Enumerable#all?

代码语言:javascript
复制
if [time_now, day_of_week, month].all? { |value| value == -1 }
  # do something
end
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12153055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档