You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby:如何通过非布尔谓词将Enumerable集合拆分为多个分区?

Ruby 标准库中的多分区实现

当然有,Ruby 内置的 Enumerable#group_by 方法就能完美实现你要的功能——用非布尔谓词把集合分成多个分区。

它的用法和你自定义的 factorize 逻辑一致:通过块返回的键值对元素分组,之后调用哈希的 values 方法就能得到分组后的数组列表。用你的示例场景演示:

(1..10).group_by { |n| n % 3 }.values
# => [[1, 4, 7, 10], [2, 5, 8], [3, 6, 9]]

group_by 是 Ruby 标准库原生方法,不需要自己手动实现分组逻辑。它会遍历集合中的每个元素,以块的返回值作为哈希的键,将元素添加到对应键的数组中,最终返回一个包含所有分组的哈希,取这个哈希的 values 就得到了你想要的多分区结果。

内容的提问来源于stack exchange,提问作者Toni Schilling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:15:56