【发布时间】:2011-08-31 00:54:09
【问题描述】:
我使用的是 ruby 1.8.5,但数组的 each_slice() 方法不起作用。
我的代码是这样的:
array.each_slice(3) do |name,age,sex| ..... end
有没有其他方法可以在我的旧版 ruby 中实现相同的功能。
【问题讨论】:
-
@the Tin Man:ruby-1.8 标签出了什么问题?
我使用的是 ruby 1.8.5,但数组的 each_slice() 方法不起作用。
我的代码是这样的:
array.each_slice(3) do |name,age,sex| ..... end
有没有其他方法可以在我的旧版 ruby 中实现相同的功能。
【问题讨论】:
自己做:
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
【讨论】:
【讨论】:
我没有1.8.5,但是你可以试试这个
0.step(array.size, 3) do |i|
name, age, sex = array[i], array[i+1], array[i+2]
...
end
【讨论】:
我自己没用过,但考虑使用backports gem。
【讨论】: