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/