Почему у структур не существует рекурсивных типов значений в Swift? Является ли это временным лимитом для данного языка или как он предназначен?Swift struct type recursion
Я чувствую, что способность объявлять узел двоичного дерева как структуру с рекурсивными типами в ней является самой естественной реализацией.
struct TreeNode<E>{
var leftNode:TreeNode<E>
var rightNode:TreeNode<E>
var element:E
}
Вы должны понимать разницу между типом ведения и тип значения сначала. То, что вы написали, невозможно на большинстве языков. Например, в C/Obj-C/C++ «leftNode» и «rightNode» должны быть указателями. В Swift, если вы хотите использовать ссылки, вы должны использовать 'class' вместо' struct'. Также обратите внимание, что вам, вероятно, понадобятся дополнительные опции. – Sulthan