为什么结构体在
Swift中不具有递归值类型?
这是语言的临时限制还是按预期限制?
这是语言的临时限制还是按预期限制?
我觉得能够将二叉树节点声明为具有递归类型的结构,这是最自然的实现.
struct TreeNode<E>{ var leftNode:TreeNode<E> var rightNode:TreeNode<E> var element:E }
答案在你的问题中:结构是值类型.如果将子结构B包含在结构A中,则意味着类型A的一个对象的大小sizeof(all_other_fields_of_A)sizeof(B).因此,值类型不能递归:它将具有无限大小.