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

【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

指定されたキーに対応する値を設定し、その設定された値自身を返します。

関連コンテンツ