【发布时间】:2016-12-21 03:43:33
【问题描述】:
我正在寻找一个select,一旦它返回一定数量的项目就会“短路”:
>>> [1, 2, 3, 4, 5].select_first(1) { |x| x.odd? }
[1]
>>> [1, 2, 3, 4, 5].select_first(2) { |x| x.odd? }
[1, 3]
>>> [1, 2, 3, 4, 5].select_first(1000) { |x| x.odd? }
[1, 3, 5]
在核心或 ActiveSupport 中是否有一个库函数可以做到这一点?自己动手很容易,但我想我会检查一下。
请注意,我不想要 select { ... }.take(n),因为该块可能有副作用。
【问题讨论】:
-
你担心什么样的副作用?
标签: ruby activesupport