我在Google中进行了搜索,以查找case class
和class
之间的区别。每个人都提到,当您要在类上进行模式匹配时,请使用用例类。否则,使用类,还提及一些额外的好处,例如equals和哈希码覆盖。但是,这些是为什么应该使用案例类而不是类的唯一原因吗?
我猜应该在Scala中使用此功能有一些非常重要的原因。有什么解释?是否有资源可以从中学习更多有关Scala案例类的信息?
最佳答案
案例类可以被视为普通且不可变的数据保存对象,应仅取决于其构造函数参数。
这个功能性概念使我们能够
Node(1, Leaf(2), None))
)与继承结合,案例类用于模仿algebraic datatypes。
如果对象在内部执行状态计算或表现出其他复杂的行为,则它应该是普通类。