case :特别适合用来描述数据。
- case class
- 样例类,相比与普通得类,它有三点不同
- 1.在创建对象时。可以省略new
- 2.默认情况下,属性都是只读的
- 3.自己自动添加相关的equals,toString 等 方法。
将以下代码进行比较就可以看出 case class的好处
class Stu(var name:String, var age:Int) {
override def equals(obj: Any): Boolean = {
val other = obj.asInstanceOf[Stu]
other.age == age && other.name == name
}
override def toString: String = s"Stu(${name},${age})"
}
def main(args: Array[String]): Unit = {
val stu1 = new Stu("小花",18)
val stu2 = new Stu("小花",18)
println(stu1 == stu2)
val set1 = Set(stu1,stu2)
println(set1)
} 结果:true
} Set(Stu(小花,18))
case class Stu(var name:String, var age:Int)
def main(args: Array[String]): Unit = {
val stu1 = new Stu("小花",18)
val stu2 = new Stu("小花",18)
println(stu1)
println(stu1 == stu2)
val set1 = Set(stu1,stu2)
println(set1)
}
} 结果:Stu(小花,18)
true
Set(Stu(小花,18))