如何创建一个静态的可变哈希表?

7

我如何创建一个静态的可变哈希映射?如果需要,我可以提供不安全的代码。

普通的静态方法不允许具有构造函数的全局变量。

例如,我想要类似https://gist.github.com/Kimundi/8782487中的内容,但希望哈希映射是可变的。

我理解在 Rust 中,全局共享可变状态并不是很“Rust-ish”,但我只是想知道这样的事情是否可能。


目前的写法让人难以确定你在问什么。请参考提问指南页面以获取帮助,澄清你的问题。 - carlodurso
你可能还想为你的问题添加一些背景。它听起来像是在问如何拥有全局可变共享数据,这与 Rust 的设计理念相反。 - Shepmaster
1
你可能可以通过将Kimundi的要点改为实现DerefMut而不是Deref来进行适应。 - wingedsubmariner
1个回答

11

要获取维护的答案,请参见如何创建全局可变单例?,因为这个问题应该被标记为重复。


既然您已经有了非可变全局对象的解决方案,也许可以使用其中一个cell容器来添加内部可变性?

实际上,这听起来像是一个糟糕的想法。全局可变状态存在问题。为什么不能将可变哈希映射传递给需要它的方法/对象呢?

您还可以查看stdin的实现,该实现提供对真正的全局单例的安全访问。


1
非常感谢你。你提供的stdin链接正是我正在寻找的,并且这也是一个很好的示例,说明了何时使用它是恰当的。 - Jack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接