3

これはDictionaryすべてのキー参照を消去するために機能していますか?

public static function cleanDic(_dic:Dictionary):void
{
    for (var eachKey:String in _dic)
    {
        delete _dic[eachKey];
    }
}

forループ中にいくつかのキーを削除すると、すべての要素がきれいにならないのではないかと心配しています。

これは、そうなりますか?

ありがとう

4

3 に答える 3

2

私はあなたが何を意味するのかよくわかりません

forループ中にいくつかのキーを削除すると、すべての要素がきれいにならないのではないかと心配しています。

しかし、あなたのコードサンプルは正しいです。それが aDictionaryをきれいにする方法です。(ループが を使用するため、キーDictionaryを持つオブジェクトのみを使用すると仮定します。以下のエンジニアのコメントを参照してください。)stringforstring

または、辞書を新しいインスタンスに設定することもできます。これにより、同じことが少し速くなります。

var dict:Dictionary = new Dictionary ();

... // use dict here      

dict = new Dictionary (); // effectively cleans the dictionary

その後、Flash ガベージ コレクタは、破棄されるディクショナリ内のすべての要素を解放する必要があります。__

于 2012-09-27T08:00:33.727 に答える
2

をクリーニングするメソッドを記述する必要はありませんDictionary。使用するだけです:

yourdictionary = new Dictionary();

GarbageCollector がそのトリックを行います。

于 2012-09-27T08:00:31.810 に答える