加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读