gpt4 book ai didi

c# - 使用不可变栈

转载 作者:太空狗 更新时间:2023-10-29 22:22:46 24 4
gpt4 key购买 nike

我看过 post宣布发布 Microsoft.Bcl.Immutable 的稳定版本今天的 NuGet 包。

我想知道:不可变堆栈的用途是什么?我找不到有用的示例或场景。可能是我对不变性的理解。如果你能阐明为什么这个东西可能有用,最好是用一个具体的例子,那就太好了。

最佳答案

这个集合库背后的想法是提供集合,当改变时产生同一个集合的新版本,其中所有旧版本的集合仍然有效。

它类似于版本控制系统的工作方式:您可以更改代码,并将更改提交到服务器,从而生成新版本的源代码树。与此同时,您仍然可以 checkout 任何以前的修订版。

对于不可变集合,您可以通过保持指向不会更改的集合的指针来保持对旧版本(本质上是不可变快照)的访问。

您可能会争辩说这种情况对堆栈的用处不大,因为您可能使用堆栈来添加和检索每个项目恰好一次,并且还保留顺序。通常堆栈的使用与在单个执行线程上运行的代码密切相关。

但是现在我正在打字,如果您有一个需要跟踪堆栈中的某些状态的惰性解析器,我可以想到一个特定的用例。然后,您可以将指向不可变堆栈的指针保存为初始解析期间的状态,无需复制,并在解析延迟工作时检索它。

关于c# - 使用不可变栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19024919/

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