scala教程:模式匹配-匹配对象(样例类 case class)

说明

可以匹配对象,通过判断对象的属性,使用 样例类 可以简化开发

也可以用普通的类,但是比较复杂,需要做额外操作

例子

case class Student(name:String,gender:String,age:Int,height:Double)

def main(args: Array[String]): Unit = {

  def m(std:Student) = std match {
    case Student(x,"男",y,z) => "匹配性别是男的对象"
    case Student(x,y,21,z) => "匹配年龄是21的对象"
    case Student(x,"女",22,1.7) => "匹配性别是女,年龄是22,身高是1.7"
    case _ => "没有匹配上"
  }

  println( m(   Student("李雷","男",20,1.82)  ))
  println( m(   Student("李四","男",21,1.82)  ))
  println( m(   Student("韩梅梅","女",21,1.65)  ))
  println( m(   Student("lucy","女",22,1.7)  ))
}

执行结果:

匹配性别是男的对象
匹配性别是男的对象
匹配年龄是21的对象
匹配性别是女,年龄是22,身高是1.7

原文出处:/show_1IX4PhCHsP1N.html