gpt4 book ai didi

scala - 为什么使用 scala.collection.immutable.Stack

转载 作者:行者123 更新时间:2023-12-04 00:36:13 33 4
gpt4 key购买 nike

我需要一些东西来存储 LIFO。除了push和pop之外,不需要遍历等功能。

我在 Scala 集合中找到了用于创建堆栈的特殊类。但它在模式匹配和其他方便的 scala 习语中缺少 Nil 对象。不可变列表乍一看很适合,它们在构造和提取方面都有缺点,而这正是 LIFO 所需要的。

scala.collection.immutable.Stack 存在背后有什么原因吗?为什么我更喜欢使用它,有哪些用例可以展示它的好处?

最佳答案

来自 the API documentation :

Note: This class exists only for historical reason and as an analogue of mutable stacks. Instead of an immutable stack you can just use a list.



而在 a little more detail :

Immutable stacks are used rarely in Scala programs because their functionality is subsumed by lists: A push on an immutable stack is the same as a :: on a list and a pop on a stack is the same as a tail on a list.



所以回答你的问题:
  • 是的,它的存在是有原因的。
  • 不,你不应该喜欢它而不是列表。
  • 关于scala - 为什么使用 scala.collection.immutable.Stack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10941679/

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