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的值 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |