Dyon教程表示,它使用的是“生命周期”,而不是垃圾收集或手动内存管理。那么,这种终身模式与铁锈的所有权有何不同呢?
由于缺少垃圾收集器,Dyon的内存模型有限。语言就是为了解决这个限制而设计的。- Dyon编程语言教程
这种模式究竟有多大的局限性?由于这个限制,是否有Dyon无法运行的内存管理代码的示例?
发布于 2020-05-21 17:13:15
链接的Dyon书包含对以下内容的解释:
生命周期是关于参考资料的 生命周期是关于存储在变量中的引用。所有引用都比存储在其中的变量更长。变量不能存储对自身的引用,因为它不能超过自身。 为了在变量中放置引用,生存期检查器必须知道引用比变量更长。 由于使用了生命周期检查器,Dyon中的所有内存都是无圈图。
因此,主要的限制是引用不能产生任何循环。也就是说,不可能表示循环节点列表或让子对象保持对其父对象的引用。
这些限制也适用于锈病,但锈病也提供了解决办法。引用计数类型(Rc和Arc)与弱引用(参见std::rc::Weak)相结合,可以创建循环引用。也可以在unsafe构造(即原始指针)后面进行循环。
另见(锈蚀具体情况,但大多数原则适用):
https://stackoverflow.com/questions/61939447
复制相似问题