scala-case class
Posted 大数据与CV
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scala-case class相关的知识,希望对你有一定的参考价值。
Case Class是一种常规类,case里的所有参数都是公共的,默认是不可变的,不使用new来实例化,能够被优化以用于模式匹配.
//定义一个样例类
object Case_class_demo{
def main(args: Array[String]): Unit = {
//定义一个样例类
case class Student(name:String)
val student1 = Student("Tim")
print(student1.name)
}
}
也可以在main之外定义
//定义一个样例类
case class Student(name:String)
object Case_class_demo{
def main(args: Array[String]): Unit = {
val student1 = Student("Tim")
print(student1.name)
}
}
没有使用关键字new
,这是因为案例类有一个默认的apply
方法来负责对象的创建。
case class被用于模式匹配:
//定义一个样例类
case class Student(name:String)
object Case_class_demo{
def main(args: Array[String]): Unit = {
val student1 = Student("Tim")
student1 match {
case Student(name:String)=> println("my name is Tim")
case _=>println("not found")
}
print(student1.name)
}
}
输出结果:my name is Tim
一个类一旦被定义为case class,编译器会自动生成该类的伴生对象,由于伴生对象中有apply和unapply方法,apply可以让我们不用new就可以创建对象,unapply则使得可以方便地应用到模式匹配中.
以上是关于scala-case class的主要内容,如果未能解决你的问题,请参考以下文章
解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE(转)(代码片段
14.VisualVM使用详解15.VisualVM堆查看器使用的内存不足19.class文件--文件结构--魔数20.文件结构--常量池21.文件结构访问标志(2个字节)22.类加载机制概(代码片段
bootspring???????????????Date??????????????????????????????????????????????????????????????????(代码片段