我可以在each_with_index循环迭代器中定义索引的偏移量吗?我的直接尝试失败了:
some_array.each_with_index{|item, index = 1| some_func(item, index) }
编辑:
澄清:我不想要数组偏移量,我希望each_with_index中的索引不是从0开始,而是从1开始。
发布于 2011-04-13 20:11:41
实际上,Enumerator#with_index
接收offset作为可选参数:
[:foo, :bar, :baz].to_enum.with_index(1).each do |elem, i|
puts "#{i}: #{elem}"
end
输出:
1: foo
2: bar
3: baz
顺便说一句,我认为它只在1.9.2中有。
发布于 2013-10-24 21:17:56
下面使用Ruby的枚举器类,非常简洁。
[:foo, :bar, :baz].each.with_index(1) do |elem, i|
puts "#{i}: #{elem}"
end
输出
1: foo
2: bar
3: baz
Array#each返回一个枚举器,调用Enumerator#with_index返回另一个枚举器,一个块被传递到该枚举器。
发布于 2011-04-14 06:35:04
如果some_index
在某种程度上有意义,那么可以考虑使用散列,而不是数组。
https://stackoverflow.com/questions/5646390
复制相似问题