【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インスタンスに格納されているキーと値のペアの数を整数で返します。