HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>В этой статье мы рассмотрим двоичное дерево -- простейшую структуру данных, созданную на основе дженериков. Мы реализуем дерево с функцией сравнения, в результате чего требований по типу элементов не будет:</p>
1 <p>В этой статье мы рассмотрим двоичное дерево -- простейшую структуру данных, созданную на основе дженериков. Мы реализуем дерево с функцией сравнения, в результате чего требований по типу элементов не будет:</p>
2 - <p>Итак, новое бинарное дерево создано. При этом наша функция сравнения передаётся функции New.</p>
2 + <p>Итак, новое бинарное дерево создно. При этом наша функция сравнения передаётся функции New.</p>
3 <p>Неэкспортированный метод выполняет возврат указателя или слот, который содержит v, или на то место в дереве, где она и должна быть.</p>
3 <p>Неэкспортированный метод выполняет возврат указателя или слот, который содержит v, или на то место в дереве, где она и должна быть.</p>
4 <p>Детали в данном случае не слишком важны, так как перед нами простой пример, цель которого продемонстрировать, каким образом создаётся структура данных с применением дженериков.</p>
4 <p>Детали в данном случае не слишком важны, так как перед нами простой пример, цель которого продемонстрировать, каким образом создаётся структура данных с применением дженериков.</p>
5 <p>Следующий код предназначен для проверки, содержит ли дерево значение:</p>
5 <p>Следующий код предназначен для проверки, содержит ли дерево значение:</p>
6 <p>А код ниже добавляет новое значение:</p>
6 <p>А код ниже добавляет новое значение:</p>
7 <p>На что тут следует обратить внимание? Прежде всего, на тип аргумента E в аргументе node. Именно таким образом выглядит код структуры данных с применением дженериков. Видно, что он не особо отличается от обычного кода на Golang, разве что, местами появляются типы в виде аргументов.</p>
7 <p>На что тут следует обратить внимание? Прежде всего, на тип аргумента E в аргументе node. Именно таким образом выглядит код структуры данных с применением дженериков. Видно, что он не особо отличается от обычного кода на Golang, разве что, местами появляются типы в виде аргументов.</p>
8 <p>Использовать такое дерево очень просто.</p>
8 <p>Использовать такое дерево очень просто.</p>
9 <p>Именно так быть и должно. А вывод прост: разрабатывать структуры данных с дженериками немного сложнее, ведь вам чаще всего приходится четко определять аргументы с типами. При всем при этом, применение такого кода, как правило, не сложнее, чем работа с традиционными структурами данных.</p>
9 <p>Именно так быть и должно. А вывод прост: разрабатывать структуры данных с дженериками немного сложнее, ведь вам чаще всего приходится четко определять аргументы с типами. При всем при этом, применение такого кода, как правило, не сложнее, чем работа с традиционными структурами данных.</p>
10 <p><em>По материалам статьи<a>Why Generics?</a></em></p>
10 <p><em>По материалам статьи<a>Why Generics?</a></em></p>
11  
11