2

我正在使用 ruby​​ 1.8.5,并且each_slice()数组的方法不起作用。

我的代码是这样的:

array.each_slice(3) do |name,age,sex|   .....   end

有没有其他方法可以在我的旧版本 ruby​​ 中实现相同的功能。

4

4 回答 4

5

自己烤:

module Enumerable
  def each_slice( n )
    res = []
    self.each do |el|
      res << el
      if res.size == n then
        yield res.dup
        res.clear
      end
    end
    yield res.dup unless res.empty?
  end
end
于 2011-05-23T10:39:20.693 回答
1

这家伙

http://tekhne.wordpress.com/2008/02/01/whence-arrayeach_slice/

发现你可以

require 'enumerator'

它有效

于 2011-05-28T06:29:02.220 回答
0

我没有1.8.5,但你可以试试这个

0.step(array.size, 3) do |i|
  name, age, sex = array[i], array[i+1], array[i+2]
  ...
end
于 2011-05-23T10:10:50.447 回答
0

我自己没有使用过,但考虑使用backports gem

于 2011-05-23T23:17:58.937 回答