Качество вывода Haxe зависит от языкового бэкэнда (чтобы иметь согласованное поведение во всех бэкэндах), но его всегда можно улучшить Когда вы компилируете его в JavaScript, у него возникает ощущение «я дома».
class HelloWorld {
static public function main() {
trace("Hello World");
}
}
Результаты:
(function () { "use strict";
var HelloWorld = function() { };
HelloWorld.main = function() {
console.log("Hello World");
};
HelloWorld.main();
})();
В то время как я видел примеры для вложенных наборов, я не видел много для вложенных интервалов, хотя в теории не должно быть трудно преобразовать от одного до другого. Вместо того, чтобы делать обход предзаказа для маркировки узлов сделайте рекурсию в ширину. Прием должен разработать самый эффективный способ маркировать n детей узла. Начиная с узла между a/b и c/d (a+c) / (b+d), плохо обусловленная вставка (например, вводя детей слева направо), рискует создавать тот же экспоненциальный рост в индексных значениях как, например, с помощью всего осуществленного пути. Не трудно противодействовать этому эффекту - создают новые индексы по одному, вводя каждого в местоположении, которое производит самый низкий получающийся знаменатель.
Насколько снижение производительности идет, много зависит от операций, которые Вы намереваетесь сделать. Существуют все еще некоторые операции, которые потребуют полной перемаркировки всего дерева - вложенный набор или вложенные методы интервала обе работы лучше всего для структур, которые это редко изменяет. При выполнении большого количества изменений структуры в иерархии 'стандартная' структура родительской дочерней таблицы может быть легче работать с. помните также, что некоторые операции (такие как число потомков) намного легче с целочисленной маркировкой вложенных наборов, чем методы интервала.