|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Сортировка Wrappers
Второй день пошел, как я пытаюсь разобраться в этом вопросе, но без результатно.
Такое чувство, что упускаю что-то очень простое и кажется, что я уже сталкивался с подобным, но сейчас в голову вообще не чего не приходит. package { import flash.display.Sprite; public class Test extends Sprite { public function Test() { var nodes:Node; for (var i:int = 0; i < 3; i++) { nodes = new Node(i, nodes); } var node:Node = nodes; // делаю проверку while (node) { trace(node.data, node.next, node.prev); node = node.next; } // трейс выводится такой, какой я и ожидал //2 [object Node] null //1 [object Node] [object Node] //0 null [object Node] node = nodes; var helpNode:Node = new Node(NaN); while (node) { helpNode.data = node.data; helpNode.next = node.prev; helpNode.prev = node.next helpNode = helpNode.prev// если закомментировать эту строчку то // в трей выводится то же самое, что и в первый раз // а если не комментировать, то выводится //2 [object Node] null //1 [object Node] [object Node] //2 null null // почему так ? Ведь я не изменяю node, а лишь // обращаюсь к его свойствам... trace(node.data, node.next, node.prev); node = node.next; } } } } class Node { public var data:*; public var next:Node; public var prev:Node; public function Node(data:Object, next:Node = null) { this.data = data; if (next) { next.prev = this; this.next = next; } } } Вот так всегда, только спросишь и тут же ответ приходит. |
Часовой пояс GMT +4, время: 12:50. |
|
« Предыдущая тема | Следующая тема » |
|
|