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

scala 样例类

发布时间:2020-12-16 09:28:46 所属栏目:安全 来源:网络整理
导读:一.case class 的特征 package com.jason.qianfeng case class Message(sender: String,receiver: String,body: String)object CaseClassTest { def main(args: Array[String]): Unit = { println( "==case class 的比较" ) val mes = Message("jason","wus"

一.case class 的特征

package com.jason.qianfeng

case class Message(sender: String,receiver: String,body: String)

object CaseClassTest {
  def main(args: Array[String]): Unit = {
    println("==case class 的比较")
    val mes = Message("jason","wus","starbuck")
    val mes2 = Message("jason","starbuck")
    println(s"mes : ${mes.toString}")
    println(s"mes2 : ${mes2.toString}")
    println(s" mes == mes2 ? :${mes == mes2}")
    println("==case class copy 方法")
    val mes3 = mes.copy()
    println(s"mes == mes3 ? : ${mes == mes3}")
    println(s"==case class 部分copy")
    val mes4 = mes.copy(sender = "fan")
    println(s"mes: ${mes.toString}")
    println(s"mes4: ${mes4.toString}")
  }
}

1.case class 默认实现了apply 方法,所以可以用val mes = Message("jason","starbuck") 方法来创建对象

2.case class 重写了toString方法,

3.case class 主构造函数中的参数默认是 public val修饰的

4.case class 的比较是基于值的,并不是引用地址的比较

5.case class 的copy 可以实现部分copy,例如

?val mes4 = mes.copy(sender = "fan")?

mes4 的 sender 被赋值为“fan” ,其他值沿用mes的值

(编辑:李大同)

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

    推荐文章
      热点阅读