在Scala里存在样例类。它的意义是为了减少重复代码,预先给类定义一些常用的方法。在Scala里使用case关键字来描述样例类。
代码语言:javascript复制scala> case class Test(name:String)
defined class Test
scala> val t = Test("a")
t: Test = Test(a)
scala> t.name
res0: String = a
scala> t
res1: Test = Test(a)
样例类t可以不使用new关键字就可以创建一个实例,并且构造参数在实例化的时候,就会分配给构造参数一个同名属性,与一般的类不一样的是,样例类会覆写toString方法,使其返回的更加“正常”。样例类最大的用途就是用于模式匹配,SparkSQL的解析器就是利用了Scala的模式匹配,大量简化了语法的解析。