在 Ruby 中从 X.times 返回数组的简洁方法
我经常想对数组执行 X 次操作,然后返回该数字以外的结果。我通常编写的代码如下:
def other_participants
output =[]
NUMBER_COMPARED.times do
output << Participant.new(all_friends.shuffle.pop, self)
end
output
end
有没有更干净的方法来做到这一点?
I often want to perform an action on an array X times then return a result other than that number. The code I usually write is the following:
def other_participants
output =[]
NUMBER_COMPARED.times do
output << Participant.new(all_friends.shuffle.pop, self)
end
output
end
Is there a cleaner way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
听起来你可以使用 map/collect (它们是 Enumerable 的同义词)。它返回一个数组,其内容是通过映射/收集的每次迭代的返回。
您不需要另一个变量或显式的 return 语句。
http://www.ruby-doc.org/core/Enumerable .html#method-i-collect
sounds like you could use map/collect (they are synonyms on Enumerable). it returns an array with the contents being the return of each iteration through the map/collect.
You don't need another variable or an explicit return statement.
http://www.ruby-doc.org/core/Enumerable.html#method-i-collect
您可以使用
each_with_object
:来自 fine手册:
You could use
each_with_object
:From the fine manual:
我认为这样的东西是最好的
I thing something like this is best