我正在尝试以下示例来理解unapply
,
class Emp(name: String, age: Int)
object Emp {
def apply(name: String, age: Int): Emp = new Emp(name, age)
def unapply(emp: Emp): Option[(String, Int)] = Some(emp.name, emp.age)
}
很不幸,它在编译时出现了错误 Cannot resolve symbol name
,Cannot resolve symbol age
。
然而,当我将Emp
声明为case
类时,它可以完美地工作,没有任何编译错误。
有人能够解释一下这背后的原因吗?
注:scala版本- 2.12.7
val
声明它以在类外部公开。 - mukesh210