首页 > 解决方案 > Ruby 爱好者的 Groovy - #each_slice

问题描述

在红宝石中,我有#each_slice ...

(1..10).each_slice(3).to_a
=> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

我正在寻找一种优雅的方式在 Groovy 中做同样的事情,这就是我作为初学者所得到的全部:

arr = []
list = (1..10) as Queue
while(!list.isEmpty()) {
sub_arr = []
3.times { sub_arr << list.poll() }
    sub_arr.removeAll([null])
    arr << sub_arr
}
arr
Result: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

标签: rubygroovy

解决方案


你需要collategroovy

(1..10).collate(3)

推荐阅读