scala模式匹配

2019-10-13  本文已影响0人  松松土_0b13

基本类型模式匹配

val name ="bb"
name match {
    case "aa" => {}
    case _ if(name === "list") => {}
    case _ => {}
}

数组匹配

val name = Array("aa","bb")
name match {
    case Array("aa") => {}
    case Array(x,y) => {}
    case Array("aa",_*) => {}
    case _ => {}
}

List匹配

val name = List("aa","bb")
name match {
    case "aa"::Nil => {}
    case x::y::Nil => {}
    case "aa":tail => {}
    case _ => {}
}

类型匹配

val name = 1
name match {
    case x:Int => {}
    case s:String => {}
    case m:Map[_,_] => {}
    case _ => {}
}

case匹配

def caseClassMathc(person:Person): Unit ={
  person match {
    case CTO(name) => println()
  }
}
class Person
case class CTO(name: String)

Some | None匹配

val grades = Map("1" -> 2, "3" -> 4)

def getGrade(name:String): Unit = {
  val grade = grades.get(name)

  grade match {
    case Some(grade) => println()
    case None => println()
  }
}
上一篇 下一篇

猜你喜欢

热点阅读