gpt4 book ai didi

scala - 为什么不让每个 Scala 类都成为一个案例类?

转载 作者:行者123 更新时间:2023-12-03 15:06:31 24 4
gpt4 key购买 nike

case 类有一些不错的 perc,比如 copy, hashCode, toString, Pattern Matching .为什么不让每个 Scala 类都成为一个案例类?

最佳答案

一个 case class非常适合保存复杂的值,比如实体对象。它们正是针对这种情况而考虑的,因此它们通过综合您提到的方法并进一步使您的类Serializable 为您提供了对这个用例有意义的方法。并使用“工厂”方法(除了用于模式匹配的提取器)创建一个伴随对象。

缺点如下:

  • case class 的一些属性has 可能对您创建的类(class)不感兴趣:您是否想要 equals持有数据库连接的对象的方法?将其设为 Serializable 是否有意义? ?如果是这样,它会安全吗?
  • 所有这些功能都不是免费的:它们需要编译器做一些额外的工作并增加你最终的工件大小;如果您不需要额外的功能,为什么要拥有这些 case class提供?
  • 你不能从 case class 继承到另一个 case class ,这可能与您对域进行建模的方式背道而驰。为什么?简短的回答:平等。您可以找到更长的答案 here .
  • 关于scala - 为什么不让每个 Scala 类都成为一个案例类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39852613/

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