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

【Ruby3.x】Hash::compact()メソッドの使い方

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

作成日: 更新日:

基本的な使い方

compactメソッドは、レシーバであるHashオブジェクトの中から、値がnilであるキーと値のペア(エントリ)をすべて取り除き、その結果として新しいHashオブジェクトを生成して返すメソッドです。このメソッドは非破壊的であり、元のHashオブジェクトの内容は一切変更されません。compactメソッドを呼び出しても、元のハッシュはnil値のエントリを持ったままの状態を保ち、nil値が取り除かれた新しいハッシュが戻り値として提供されます。

主に、データの前処理やクリーニングの際に活用されます。例えば、外部システムから取得したデータがハッシュ形式で、その中にnil値を持つ不要な情報が含まれている場合に、それらを効率的に除去して整形することができます。これにより、後続の処理でnil値を考慮する必要がなくなるため、コードの記述を簡潔にし、エラー発生のリスクを減らすことが期待できます。

もし、元のHashオブジェクト自体を直接変更し、nil値のエントリを削除したい場合には、破壊的メソッドであるcompact!を使用することができます。どちらのメソッドも、状況に応じて適切に使い分けることで、Rubyのプログラムにおいてハッシュデータをより柔軟かつ安全に扱うことを可能にします。

構文(syntax)

1# Hash#compact メソッドは、値が nil のキーと値のペアをすべて削除した新しいHashを返します。
2# 元のHashは変更されません。
3original_hash = { name: "Alice", age: 30, email: nil, city: "Tokyo" }
4new_hash = original_hash.compact
5# new_hash は { name: "Alice", age: 30, city: "Tokyo" } となります。

引数(parameters)

引数なし

引数はありません

戻り値(return)

Hash

nil値の要素を取り除いた新しいハッシュを返します。

関連コンテンツ

関連プログラミング言語