如果我有arr = [1, 2, 3, 4]
我知道我可以做以下事情...
> arr.each_slice(2) { |a, b| puts "#{a}, #{b}" }
1, 2
3, 4
...和...
> arr.each_with_index { |x, i| puts "#{i} - #{x}" }
0 - 1
1 - 2
2 - 3
3 - 4
...但是有内置的方法可以做到这一点吗?
> arr.each_slice_with_index(2) { |i, a, b| puts "#{i} - #{a}, #{b}" }
0 - 1, 2
2 - 3, 4
我知道我可以构建自己的并将其粘贴到数组方法中。只是想看看是否有内置函数可以做到这一点。
与大多数迭代器方法一样,each_slice
从 ruby 1.8.7+ 开始,在没有块的情况下调用时返回一个可枚举,然后您可以在其上调用进一步的可枚举方法。所以你可以这样做:
arr.each_slice(2).with_index { |(a, b), i| puts "#{i} - #{a}, #{b}" }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)