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