3

クラス型をハッシュ変数のキーとして使用していることに気付きました:(正確にはそうではありません)

def add_to_cache(obj)
  @cache[obj.class] = [] unless @cache.has_key? obj.class
  @cache[obj.class] << obj
end

だから、誰かがそれを説明できるかどうか、私は興味があります。いくつかの欠点はありますか?どのようにメモリに保存されますか?それ(obj.class)をSymbolまたはStringに変換する必要がありますか?

4

2 に答える 2

2

あなたの目的は、特定のクラスのすべてのインスタンスを追跡することであると推測しています。その場合、それらを手動でキャッシュする必要はありません。class のすべてのインスタンスを取得するには、次のklassようにします。

ObjectSpace.each_object(klass).to_a
于 2013-10-29T15:56:44.490 に答える