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]