scala – 在没有案例类的情况下理解unapply
发布时间:2020-12-16 18:10:13 所属栏目:安全 来源:网络整理
导读:我正在尝试下面的例子来理解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)} 不幸的是,它失败并出现编译错误无
我正在尝试下面的例子来理解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) } 不幸的是,它失败并出现编译错误无法解析符号名称,无法解析符号年龄. 然而,当我将Emp声明为案例类时,它可以完美地工作,没有任何编译错误. 有人可以解释一下背后的原因吗? 注意:scalaVersion- 2.12.7 解决方法
错误告诉你,scala无法在类Emp中看到属性.为了揭露它们,你需要像这样的smth(在
here中有更多内容):
class Emp(val name: String,val age: Int) 而且,Some只接受一个参数,所以你需要返回一对: Some((emp.name,emp.age)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |