【Ruby3.x】ObjectSpace::WeakMap::delete()メソッドの使い方
deleteメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
deleteメソッドは、ObjectSpace::WeakMapオブジェクトから特定のキーとそれに対応する値を削除するメソッドです。
ObjectSpace::WeakMapは、キーと値のペアを保持するコレクションですが、そのキーへの参照が「弱い参照(weak reference)」であることが最大の特徴です。これにより、キーとして設定されたオブジェクトが他のどこからも強い参照を持たなくなった場合、Rubyのガベージコレクタによって自動的に回収されることを妨げません。
このdeleteメソッドは、引数として渡されたキーに対応するエントリをObjectSpace::WeakMapから明示的に除去するために利用されます。指定したキーがWeakMap内に存在する場合、そのキーと関連付けられた値のペアを削除し、削除された値を戻り値として返します。もし指定されたキーがWeakMap内に見つからない場合は、nilを返します。
このメソッドは、WeakMapに保持されている特定のキーと値の関連付けを意図的に解除したい場合に有効です。特に、キーとして登録されているオブジェクトがまだ他の場所から参照されており、ガベージコレクションによってWeakMapからのエントリが自動的に削除されない状況で、手動でクリーンアップを行う必要がある際に役立ちます。WeakMapのメモリ管理特性を理解し、リソースを効率的に利用するために重要なメソッドの一つです。
構文(syntax)
1wm = ObjectSpace::WeakMap.new 2key = Object.new 3wm[key] = "some value" 4wm.delete(key)
引数(parameters)
key
- key: 削除したいエントリのキー
戻り値(return)
value or nil
削除されたキーに対応する値、またはキーが存在しない場合はnilを返します。