【Ruby3.x】ObjectSpace::WeakMap::[]=()メソッドの使い方
[]=メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
[]=メソッドは、ObjectSpace::WeakMapオブジェクトに対し、指定されたキーと値のペアを設定(追加または更新)するメソッドです。具体的には、weak_map_instance[キー] = 値 の形式で使用され、weak_map_instanceにキーとそれに対応する値` を関連付けて格納します。
ObjectSpace::WeakMap は、キーと値を「弱参照」として保持する特別なマップです。通常のハッシュとは異なり、このマップに格納されたキーや値のオブジェクトが、他のどの場所からも参照されなくなった場合、Rubyのガベージコレクタによって自動的にメモリから解放され、同時にObjectSpace::WeakMapからも削除されます。
この[]=メソッドによって設定されたキーと値も弱参照として保持されるため、アプリケーションで不要になったオブジェクトがObjectSpace::WeakMap内に残り続けることによるメモリリークを防ぎ、メモリを効率的に管理できます。例えば、キャッシュ機能などで一時的にオブジェクトを保持しつつ、他の場所で使われなくなった際には自動的に削除したい場合にObjectSpace::WeakMap`とこのメソッドが活用されます。任意のRubyオブジェクトをキーおよび値として設定できます。
構文(syntax)
1require 'objspace' 2 3weak_map = ObjectSpace::WeakMap.new 4key_object = "some_key" 5value_object = { data: "example" } 6weak_map[key_object] = value_object
引数(parameters)
key, value
- key: マップに追加するキー
- value: キーに対応する値
戻り値(return)
Object
指定されたキーに対応する値を設定し、その設定された値自身を返します。