前奏
第一种
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" }) }}