3
public var obj:Object;
public var dictionary:Dictionary;


public function MyClass(){

    obj = new Object();
    dictionary = new Dictionary();

    obj["1"] = 1;
    obj["2"] = 2;

    dictionary["3"] = 3;
    dictionary["4"] = 4;
}

public function returnFromObject(parameter:String):int{

     return obj[parameter];
}

public function returnFromDictionary(parameter:String):int{

     return dictionary[parameter];
}

彼らは私に同じ目的を果たすことができます。私が気付いていないそれらのいずれかを使用することで明らかなパフォーマンスの低下がない限り。

4

3 に答える 3

2

違いは、辞書の場合、文字列ではなくオブジェクトをキーとして使用できることです。それ以外では、大きな違いはわかりません(ただし、これらの実際のベンチマークを見たことを思い出せないので、誰かが賢い場合はお知らせください)。

http://gskinner.com/blog/archives/2006/07/as3_dictionary_.html

コメントでは、ページ上のパフォーマンスへの言及のみが簡単なものです。一般的に、これらは希望に満ちたものであり、アプリケーションに依存していると私は述べています。

于 2012-11-15T22:53:03.023 に答える
2

これによると、辞書はオブジェクトや配列よりもはるかに高速であるようです。

http://www.zombieflambe.com/actionscript-3/as3-dictionary-class-array-object-benchmark/

于 2012-11-15T22:55:47.650 に答える
1

おそらくこれよりも多くの違いがありますが、私の最初の考えは変数宣言とオブジェクトをループする機能でした。

var obj:Object = new Object();
obj.a = "test1";
obj.b = "test2";
obj.c = "test3";

for each (var prop in obj) trace(prop); //traces "test1, test2, test3"

詳細はこちら: http: //help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Dictionary.html

于 2012-11-15T22:54:30.533 に答える