ios - Swift 中的双向链表 : why is only one of the references declared weak?

标签 ios swift data-structures

class DoublyLLNode<T>{

var value<T>?
weak var prev: DoublyLLNode? = nil
var next: DoublyLLNode? = nil

}

为什么一个值(上一个值或下一个值)被标记为?我们不能让两者都变得弱吗?如果是,为什么?如果没有解释。

最佳答案

如果两者都很弱,则不会对任何节点有任何强引用,并且所有节点都将被释放。

当存在父/子关系时,您通常会对父级中的子级具有强引用,而子级对其父级具有弱引用。将 next 视为“子级”,将 prev 视为“父级”。

如果两者都很强大,您最终会得到引用循环。

关于ios - Swift 中的双向链表 : why is only one of the references declared weak?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51618319/

相关文章:

node.js - 创建 NPM 链接实用程序 - 从下到上跟踪依赖关系

c++ - 为什么我不能输出迷宫的路径?谁能告诉我?拜托

ios - 为什么 UITableView 有效但 UIView 不

cocoa-touch - 当用户滚动时更改 UIWebview 中的标题

ios - 从 Swift 中的特定线程运行代码

swift - sceneDidLoad 被调用两次?

swift - NSURLSession uploadTaskWithRequest 具有 mime 类型?

IOS : Correct way to reuse UIPanGestureRecognizer class/methods for multiple view?

ios - Safari 扩展上的应用程序传输安全

c - 搜索不适用于哈希表