Techioz Blog

Ruby 列挙子を使用して次の n 個の要素を取得するにはどうすればよいですか?

概要

Ruby 列挙子を使用して次の n 個の要素を取得しようとしています。これは次のとおりです。

a = [1, 2, 3, 4, 5, 6]
enum = a.each
enum.next(2) # expecting [1, 2]
enum.next(2) # expecting [3, 4]

しかし、#next はそれをサポートしていません。

それを行う正しい Ruby の方法は何ですか?

解決策

takeメソッドを使用できます

enum.take(2)

2 つの要素のスライスが必要な場合は、次のようにすることができます。

e = enum.each_slice(2)
p e.next
#=> [1, 2]
p e.next
#=> [3, 4]