前奏
第一种
class Student(val name:String,val age:Int){
override def equals(obj: Any): Boolean = {
val student: Student = obj.asInstanceOf[Student]
if(name==student.name && age == student.age){
return true
}
return false
}
}
object Test5{
def main(args: Array[String]): Unit = {
val stu = new Student("zs",18)
if (stu.equals(new Student("zs",18)) ){
println("match")
}
}
}
第二种
if (stu == new Student("zs", 18)){
println("match")
}
第三种
object Student{
def apply(name: String, age: Int): Student = new Student(name, age)
def unapply(arg: Student): Option[(String, Int)] = {
if (arg == null){
None
}else{
Some((arg.name,arg.age))
}
}
}
object Test6{
def main(args: Array[String]): Unit = {
val stu = Student("zs",18)
val res: String = stu match {
case Student("zs", 18) => "match yes"
case _ => "Nothing"
}
println(res)
}
}
样例类
case class Teacher(val name:String,val age:Int)
object Test7{
def main(args: Array[String]): Unit = {
val teacher = Teacher("ls",30)
println(teacher match {
case Teacher("ls", 30) => "teacher name is ls"
case _ => "Nothing"
})
}
}