我正在使用ruby 1.8.5,而数组的each_slice()
方法不起作用。在Ruby 1.8.5中是否存在Array#each_slice()的等价物?
我的代码是这样的:
array.each_slice(3) do |name,age,sex| ..... end
有没有实现我的旧版本红宝石相同的功能的任何其他方式。
我正在使用ruby 1.8.5,而数组的each_slice()
方法不起作用。在Ruby 1.8.5中是否存在Array#each_slice()的等价物?
我的代码是这样的:
array.each_slice(3) do |name,age,sex| ..... end
有没有实现我的旧版本红宝石相同的功能的任何其他方式。
烘烤自己:
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
真棒..这真的很棒..非常感谢你.. – sundar 2011-05-23 10:43:46
我没有用它自己,但考虑使用backports gem。
这家伙
http://tekhne.wordpress.com/2008/02/01/whence-arrayeach_slice/
想通了,你可以
require 'enumerator'
和它的作品
@the铁皮人:什么是错的红宝石1.8标签? – 2011-05-24 00:08:04