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

【Ruby3.x】ObjectSpace::WeakMap::size()メソッドの使い方

sizeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

sizeメソッドは、ObjectSpace::WeakMapオブジェクトが現在保持しているキーと値のペアの数を取得するメソッドです。ObjectSpace::WeakMapは、キーへの参照が弱く保たれる特殊なハッシュマップの一種です。通常のハッシュマップ(Hash)と異なり、キーを参照している箇所が他になくなった場合、Rubyのガベージコレクション(GC)が実行されると、そのキーとそれに対応する値のエントリは自動的にWeakMapから削除されます。

したがって、sizeメソッドが返すペアの数は、GCの実行状況によって変動する可能性があります。GCがまだ実行されていない状況では、すでに参照が失われたキーのエントリもカウントに含まれている場合がありますが、GCが実行されると、それらのエントリが削除され、sizeの値は減少することがあります。この特性を理解することは、WeakMapを正しく利用するために重要です。例えば、WeakMap内のアクティブな要素数を正確に把握したい場合は、GC実行後にsizeメソッドを呼び出すことを考慮する必要があります。このメソッドは、WeakMapの現在の状態を監視したり、その規模を把握したりする際に利用されます。

構文(syntax)

1require 'objspace'
2
3weak_map = ObjectSpace::WeakMap.new
4key = Object.new
5value = Object.new
6weak_map[key] = value
7weak_map.size # => WeakMapが保持する要素の数 (例: 1)

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer

ObjectSpace::WeakMapインスタンスに格納されているキーと値のペアの数を整数で返します。

関連コンテンツ