【Ruby3.x】Set::classify()メソッドの使い方
classifyメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
classifyメソッドは、Setオブジェクトの各要素を、与えられたブロックの評価結果に基づいて分類し、新しいハッシュを生成するメソッドです。Setが保持する複数の要素を、特定のルールに従ってグループ分けしたい場合に利用します。
このメソッドは、Setの各要素を一つずつブロックに渡します。ブロックは渡された要素を受け取り、その要素がどのグループに属するかを示す値を返します。このブロックが返した値が、新しく生成されるハッシュのキーとなります。そして、同じキーを返したSetの要素がすべて集められ、それらが配列としてまとめられて、そのキーに対応するハッシュの値となります。
たとえば、数値のSetがあり、それらを偶数と奇数に分類したい場合を考えます。classifyメソッドに「その数値が偶数なら'even'、奇数なら'odd'を返す」というブロックを渡します。すると、結果として「'even'というキーにはSet内の偶数をまとめた配列」、「'odd'というキーにはSet内の奇数をまとめた配列」を持つハッシュが生成されます。
Setは要素の順序を保持しないコレクションであるため、分類された要素がハッシュの値(配列)に格納される際の順序は保証されません。しかし、このメソッドを使うことで、Setの要素を柔軟かつ効率的に整理し、目的に応じた構造のデータとして活用できるようになります。
構文(syntax)
1require 'set' 2 3my_set = Set[1, 2, 3, 4, 5, 6] 4my_set.classify { |element| element % 2 }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Hash
Setオブジェクトの要素を、ブロックで返される値に基づいて分類した結果をHash形式で返します。キーはブロックで返された値、値はそのキーに分類された要素の配列になります。