【Ruby3.x】ObjectSpace::WeakMap::[]()メソッドの使い方
[]メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
[]メソッドは、ObjectSpace::WeakMapオブジェクトから、指定されたキーに対応する値を取得するメソッドです。ObjectSpace::WeakMapは、キーに対する参照を「弱い参照」として保持するという特徴を持つ特殊なマップ(連想配列)です。通常のハッシュとは異なり、WeakMapのキーとして登録されたオブジェクトが他のどこからも参照されなくなり、Rubyのガベージコレクタによって回収されると、WeakMap内のそのキーと値のペアも自動的に削除されます。
この[]メソッドは、指定されたキーがマップ内に存在しない場合、またはキーがすでにガベージコレクションによって回収され、マップから削除されている場合にnilを返します。これにより、メモリを効率的に管理しながら、特定のオブジェクトをキーとして関連する情報を保持したい場合に非常に役立ちます。例えば、オブジェクトのライフサイクルと連動してデータを自動的にクリーンアップしたいようなキャッシュシステムや、オブジェクトに付随する一時的なメタデータ管理などで活用されます。弱い参照の特性を理解して利用することで、プログラムのメモリ使用量を最適化し、意図しないオブジェクトの長期保持を防ぐことができます。
構文(syntax)
1weak_map = ObjectSpace::WeakMap.new 2key = "sample_key" 3value = "sample_value" 4weak_map[key] = value 5retrieved_value = weak_map[key]
引数(parameters)
key
- key: 値を取得したいオブジェクトを指定します。
戻り値(return)
Object | nil
指定されたキーに対応する値、またはキーが存在しない場合は nil を返します。