gpt4 book ai didi

Swift 结构类型递归

转载 作者:IT王子 更新时间:2023-10-29 05:33:45 25 4
gpt4 key购买 nike

为什么 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)。因此,值类型不能递归:它将具有无限大小。

关于Swift 结构类型递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36080491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com