Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Enumerator::Chain::size()メソッドの使い方

sizeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

sizeメソッドは Enumerator::Chain クラスに属し、複数の列挙可能なオブジェクトを連結して作られた Enumerator::Chain オブジェクトが保持する要素の総数を取得するメソッドです。Enumerator::Chainは、複数の配列や範囲といった、順序立てて要素を扱うことができるオブジェクト(列挙可能なオブジェクト)をあたかも一つの連続したコレクションであるかのように扱えるようにするための仕組みです。このsizeメソッドを呼び出すと、連結されている全ての列挙可能なオブジェクトの要素数をそれぞれ調べ、それらを合計した値を返します。

例えば、[1, 2]という配列と、3..5という範囲オブジェクトを連結してEnumerator::Chainを作成した場合、sizeメソッドはそれぞれの要素数(2と3)を合計した「5」を返します。ただし、このメソッドが正確な要素数を返せるのは、連結されている全てのオブジェクトが自身の要素数を確定できる場合のみです。もし、連結されているオブジェクトの中に、要素数が無限であるために自身のサイズを明確に答えられないものや、現在の状態では要素数が不確定であるためにsizeメソッドを呼び出すとnilを返すようなオブジェクトが含まれている場合、Enumerator::Chain#sizeメソッドもまた「nil」を返します。これは、全体としての要素数が確定できないことを示しており、Rubyの他のコレクションオブジェクトで一般的に見られるsizeメソッドの動作と一貫しています。

構文(syntax)

1e1 = [1, 2, 3].each
2e2 = [4, 5, 6, 7].each
3chain = Enumerator::Chain.new(e1, e2)
4chain.size

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer or nil

Enumerated objectsを連結した列挙子の要素数を返します。要素数が取得できない場合はnilを返します。

関連コンテンツ