gpt4 book ai didi

rust - Rust 的借用规则是否妨碍了功能数据结构?

转载 作者:行者123 更新时间:2023-11-29 07:44:43 25 4
gpt4 key购买 nike

函数式数据结构(例如 Haskell/Clojure/Scala 中使用的 Hash Array Mapped Trie)依赖于底层数据结构中的大量共享。例如,如果我们在类似 map 的数据类型上实现 insert,通常通过在实现数据结构的树上进行路径复制来实现。

鉴于这些数据结构在很大程度上依赖于共享(并且没有主要所有者)潜在值(value),借用是否会妨碍实现此类结构?

最佳答案

简短回答:

长答案:

Rust 实际上可以很好地处理不可变结构(例如,它比 C 的 const 提供更多保证)。

共享所有权没有问题 (Rc/Arc) 具有真正不可变的值,您可以轻松地多次借入不可变结构。借用时您不能移动,但这可以通过分发拥有代理(再次通过 RcArc)而不是引用来规避。

在 Rust 中,您可能没有在 Haskell 中遇到的一个问题是将可变值与 CellRefCell 混合,因为您可以创建循环,而那些不会收集是因为 Rust 没有 GC。

关于rust - Rust 的借用规则是否妨碍了功能数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34817204/

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