Ruby 4.0 リファレンスマニュアル

instance method ObjectSpace::WeakKeyMap#getkey

getkey(key) -> object | nilRuby 3.3 から[permalink][rdoc][edit]

key と等値なキーが登録されていれば、登録されているほうのオブジェクトを返します。無い場合は nil を返します。

同じ値を表すオブジェクトを 1 つにまとめる用途に使えます。

[PARAM] key:
探すキーを指定します。
value = { amount: 1, currency: "USD" }

cache = ObjectSpace::WeakKeyMap.new
cache[value] = true

# 等値な別のオブジェクトを渡しても、登録済みのオブジェクトが返る
copy = cache.getkey({ amount: 1, currency: "USD" })
p copy.equal?(value) # => true

[SEE_ALSO] ObjectSpace::WeakKeyMap#[]