rust 匆忙-回忆问题

r6vfmomb  于 2023-02-04  发布在  其他
关注(0)|答案(2)|浏览(118)

我有一个游戏,我尝试编码,我想记忆一个next_guess函数,因为它的成本。我知道有一些记忆板条箱,但我有一些奇怪的要求,整个项目是一个练习学习 rust ,所以我想知道一个真正的海象会怎么想。next_guess函数在Node structimpl中。游戏树分支非常快。所以每一层都有很多可能的下一步节点要分析。如果我把一个对memoize HashMap的引用添加到Node struct以供next_guess使用,我不能使它可变,因为不能有多个对它的可变引用。但是我需要它可变,这样我就可以添加新值。我认为使用全局变量是一个禁忌,但是将HashMap设置为lazy_static是正确的方法吗?或者我应该使用unsafe块来访问它(我可以这样做吗?)。

31moq8wy

31moq8wy1#

就我的两点意见:

  • 在每个Node中包含一个HashMap将占用大量空间。
  • 如果您手头已经有了一个特定的Node,您真的想在HashMap中查找它吗?Node本身不能存储缓存的值吗(可能在Option<BestNextGuess>中)?
bn31dyow

bn31dyow2#

最后,我通过重构创建了一个拥有HashMap的游戏struct,然后在调用节点struct之前,首先通过游戏struct传递所有的猜测尝试。

相关问题