为什么案例 class 被命名为 'case'?

Why case class is named 'case'?

`案例是'特定情况的实例;某事发生的例子'.

所以我的问题是 - 为什么 Scala 'case' classes 被命名为 'case'?重点是什么?为什么是 'case',而不是 'data' class 或其他?在那种情况下 'case' 是什么意思 :)

这是因为它们可以用于模式匹配。 A case 在英语用法中表示一种可能性;这就是模式匹配为您解决的问题。

例如,"There are three cases we must consider here..."

case 关键字在其他语言中的主要用途是在 switch 语句中,这些语句主要用于 enums 或类似值,例如 ints或 strings 用于表示不同的定义明确的情况:

switch (value)
{ 
   case 1: // do x -
   case 2: // do y - 
   default: // optional
}

在 scala 中,这些 classes 通常表示抽象 class 的具体定义良好的可能实例,其使用方式与命令式代码在 [=17= 中使用 switch 语句的方式大致相同]-子句:

value match {
    case Expr(lhs, rhs) => // do x
    case Atomic(a) => // do y
    case _ => // optional, but will throw exception if something cannot be matched whereas switch won't
}

案例 classes 的许多行为,例如它们的构造方式,旨在 facilitating/enabling 它们在此类语句中的使用。