【Ruby3.x】ObjectSpace::WeakKeyMap::getkey()メソッドの使い方
getkeyメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
getkeyメソッドは、ObjectSpace::WeakKeyMapオブジェクトに格納されているキーを検索し、そのキーオブジェクトを返すメソッドです。
ObjectSpace::WeakKeyMapは、キーが弱参照として扱われる特殊なハッシュマップです。弱参照であるため、キーとして登録されたオブジェクトへの参照が失われると、ガベージコレクションによって自動的に回収され、マップからもそのエントリが削除されます。これは、不要なメモリの占有を防ぎ、メモリの効率的な管理に貢献します。
getkeyメソッドは、引数として指定されたオブジェクトと「#eql?」メソッドおよび「#hash」メソッドで等価と判断されるキーがマップ内に存在するかを調べます。もし等価なキーが見つかった場合、このメソッドはマップ内部で実際に保持されている元のキーオブジェクトを返します。例えば、マップに「オブジェクトA」がキーとして登録されており、それと等価な「オブジェクトB」で検索しても、返されるのはマップ内の「オブジェクトA」です。
このメソッドは、マップに実際に登録されている元のキーオブジェクトを、検索に使ったオブジェクトと区別して取得したい場合に役立ちます。該当するキーがマップ内に見つからない場合は「nil」を返します。
構文(syntax)
1weak_key_map_instance.getkey(key_object)
引数(parameters)
value
- value: 検索したい値
戻り値(return)
キー、またはnil
指定されたキーに対応するキーオブジェクトを返します。キーが存在しない場合はnilを返します。