我正在尝试下面的例子来理解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
类时,它工作得非常好,没有任何编译错误。
有人可以解释这背后的原因吗?
注意:scalaVersion- 2.12.7