【问题标题】:Understanding `detect` method了解 `detect` 方法
【发布时间】:2015-08-01 02:59:34
【问题描述】:

我无法理解Enumerable 中的detect 方法。我尝试了示例代码:

(1..6).detect  { |i| i % 2 == 0 and i % 3 == 0 }
#=> 6

但我仍然很困惑。任何帮助将不胜感激。

【问题讨论】:

  • 您好,欢迎来到 Stack Overflow。所以 - 你有一个答案,但为了帮助你写出更好的未来问题,我应该说目前还不清楚你对什么感到困惑。如果您解释了您所知道的和您不知道的,这可能会对我们有所帮助 - 只是转储一行代码并说“我很困惑”让我想“我也是”;)我的问题是“你对什么感到迷惑?为什么你需要知道这个?当你在'irb'中玩它时你尝试过什么?
  • 您是否也了解类似类型的方法(例如查找/选择/拒绝),或者是否有特定于检测问题的方法?是否只是 这种特定用法 您不了解检测,还是您看到更简单的版本有意义?等等等等任何你可以从“我很困惑”缩小到实际问题的方式都将帮助我们在未来帮助你:)
  • 嗨,Taryn,感谢您抽出时间来帮助我解决我的问题,以及关于如何在 S.O. 上提出问题的建议。将来。抱歉,我应该在最初的问题中进一步详细说明——我不确定我提供的代码是如何返回“6”的。感谢@squiguy 的回答,我现在完全理解了。非常感谢你们。非常感谢。
  • 检测将返回结果匹配的第一次出现
  • 还要感谢所有反对我关于 SO 的第一个问题的人。让男人感到受欢迎的方法。

标签: ruby enumerable


【解决方案1】:

根据documentation,该方法返回block返回true的可枚举对象中的第一个元素。

因此,该范围内第一个可以被 2 和 3 整除的数字是 6,因此它被返回。如果不是这种情况,并且没有数字可以被 2 和 3 整除,那么该方法将返回 nil

这是一种“检测”第一个使块为真的对象的方法。

【讨论】:

  • 非常感谢您回答我的问题。你为我解释得很好:)
  • @sulufiti 太好了,我很高兴 :)。
猜你喜欢
  • 1970-01-01
  • 2020-11-17
  • 2016-07-06
  • 2014-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多