我試圖在平面數組中打印分組標題。我只想要節標題出現每組。是否有Ruby-Way™來處理這種循環?
下面的例子可以工作,但是對於Ruby來說它感覺非常不雅。我敢肯定,必須有更好的方式來做到這一點;)
#!/usr/bin/ruby
foo = [1,1,1,1,2,2,2,3,3]
i = 0;
f = foo[i]
comp = f
while(i < foo.count) do
puts "Section #{f}";
while(f == comp) do
puts f
i += 1
f = foo[i]
end
comp = f
end
所需的輸出
Section 1
1
1
1
1
Section 2
2
2
2
Section 3
3
3
我希望有某種Array#current
或Array#next
實例方法,但它看起來像Ruby Array對象不保留內部迭代器。
你可以通過調用'foo.to_enum'得到迭代器。它有'next'方法。 – 2011-03-07 21:19:35
@Mladen,非常酷。謝謝<3 – naomik 2011-03-07 21:22:41