ios - 以节点为结构的 swift LinkedList

标签 ios swift linked-list structure self-reference

谁能告诉我如何在 swift 中创建一个以节点为结构、以链表为类的链表。

我尝试创建一个引用自身的节点 Node 并遇到错误“值类型‘Node’不能具有引用自身的存储属性”

为了解决它,我又创建了一个类 Next 现在我无法继续进行。

最佳答案

您不能将节点作为“结构”,因为 Swift 将结构和枚举视为值类型,将类视为引用类型。

当您创建 LinkedList 类时,您很可能会创建对节点结构的引用。现在 struct 是一种值类型,为值类型捕获 self 是危险的做法,不鼓励。

因此,我建议您将 Node 创建为类,并利用 Swift 中的各种访问说明符来实现您正在尝试的抽象。

有关在值类型中捕获 self 的更多详细信息,您可以引用 https://github.com/Wolox/ios-style-guide/blob/master/rules/avoid-struct-closure-self.md .

关于ios - 以节点为结构的 swift LinkedList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48648089/

相关文章:

java - LinkedList 对象 add() 函数不更新值 - java

ios - 根据屏幕大小调整按钮的宽度和高度

Swift:NSLengthFormatter 只有 1 个小数位

c - 在链表末尾插入

ios - 被分析的二进制文件必须是可执行文件

ios - 在 swift 4 中处理 JSON

ios - 在 iOS 导航 Controller 中全局翻译 'back' 文本

ios - 从 iOS 中的视频 url 或数据获取缩略图

core-data - 解包可选值时意外发现 nil - Swift

loops - 所有while循环都可以转换为for循环吗?