gpt4 book ai didi

scala - 在 Scala 中不应该在哪些情况下使用 case 类?

转载 作者:行者123 更新时间:2023-12-03 10:39:39 27 4
gpt4 key购买 nike

Scala 中的 Case 类是通过模式匹配、equals、...(或者我错了?)增强的标准类。此外,它们的实例化不需要“new”关键字。在我看来,它们比普通类更容易定义(或者我又错了?)。

有很多网页告诉他们应该在哪里使用(主要是关于模式匹配)。但是应该在哪里避免呢?为什么我们不在任何地方使用它们?

最佳答案

案例类有很多地方不够用:

  • 当希望隐藏数据结构时。
  • 作为超过两个或三个级别的类型层次结构的一部分。
  • 当构造函数需要特殊考虑时。
  • 当提取器需要特殊考虑时。
  • 当相等和哈希码需要特殊考虑时。

  • 有时这些需求会在设计的后期出现,并且需要将案例类转换为普通类。由于案例类的好处并不是那么大——除了它们是专门为少数特殊案例设计的——我自己的建议是,除非有明确的用途,否则不要将任何东西作为案例类。

    或者,换句话说,不要过度设计。

    关于scala - 在 Scala 中不应该在哪些情况下使用 case 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2119555/

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