このページに出くわしました: AS3 でリンクされたリストを作成する
AS3.0 はスクリプト言語なので。なぜ AS3.0 で連結リストが可能になったのだろうか? リンクされたリストを作成するためにポインタ(メモリ位置にアクセスする方法)は必須ではありません。最終的には、データの配列のパフォーマンスが向上しますか?
このページに出くわしました: AS3 でリンクされたリストを作成する
AS3.0 はスクリプト言語なので。なぜ AS3.0 で連結リストが可能になったのだろうか? リンクされたリストを作成するためにポインタ(メモリ位置にアクセスする方法)は必須ではありません。最終的には、データの配列のパフォーマンスが向上しますか?
AS3にはオブジェクト参照があり、正確にはポインターがありませんが、非常によく似た方法で参照を使用してリンクリストを作成できます。リンクリストの利点(一般的に)は、リスト内での挿入と削除にあります(配列を使用する場合のようにすべての要素をシフトする必要はありません)。オブジェクト参照を使用しても、この利点を得ることができます。
注:AS3のオブジェクトは参照によって渡され、プリミティブは値によって渡されます。
事実上、すべてのスクリプト言語はポインターを処理します。
彼らは、それらを別の方法で呼び (ほとんどの場合「参照」と呼んでいます)、メモリ割り当てと解放の管理の複雑さ (または可能性) を隠すことにしただけです。
ActionScript (または JavaScript) でリンクされたリストを作成する最も簡単な方法は、
var node1 = {value: 1};
var node2 = {value: "foo"};
var node3 = {value: "bar"};
//of course this code should be localices within a separate class
//with some nice API
((node1.next = node2).next = node3).next = null;
//and then use like that e.g.
var n = node1;
while (n) {
trace(n.value);
n = n.next;
}