小编典典

Scala的案例类和类有什么区别?

all

case class我在 Google 中搜索以找到 a和
a之间的区别class。大家都提到,当你想在类上做模式匹配时,用例类。否则使用类,并提到一些额外的好处,如等于和哈希码覆盖。但这些是人们应该使用案例类而不是类的唯一原因吗?

我想 Scala 的这个特性应该有一些非常重要的原因。解释是什么,或者是否有资源可以从中了解有关 Scala 案例类的更多信息?


阅读 117

收藏
2022-03-14

共1个答案

小编典典

案例类可以看作是 简单的和不可变的数据保存对象,它们应该完全依赖于它们的构造函数参数

这个功能概念使我们能够

  • 使用紧凑的初始化语法 ( Node(1, Leaf(2), None)))
  • 使用模式匹配分解它们
  • 隐式定义相等比较

结合继承,案例类用于模拟代数数据类型

如果一个对象在内部执行有状态计算或表现出其他类型的复杂行为,它应该是一个普通类。

2022-03-14