JIANGzihao0222

导航

 

  学习了Scala剩下的内容:模式匹配

可以对表达式类型进行匹配

match

val colorNum = 1
val colorStr = colorNum match {
  case 1 => "red"
  case 2 => "green"
  case 3 => "yellow"
  case _ => "Not Allowed" // 什么也没有匹配上
}

可以在match使用变量

val colorNum = 4
val colorStr = colorNum match {
  case 1 => "red"
  case 2 => "green"
  case 3 => "yellow"
  case unexpected => unexpected + " is Not Allowed" // 什么也没有匹配上,放一个变量名称,会进行获取值
}

可以对表达式类型进行匹配

for(elem <- List(9,12,3,"Spark","Hadoop","Hello")){
  val Str = elem match {
    case int: Int => int + " is a int value"  // 进行判断类型
    case double: Double => double + " is a double value"
    case "Spark" => "Spark is found" // 进行查找”Spark"
    case string: String => string + " is a String value"
    case _ => "This is a unexpected value"
  }
  println(Str)
}
for(elem <- List(9,12,3,"Spark","Hadoop","Hello")){
  val Str = elem match {
    case int: Int => int + " is a int value"  // 进行判断类型
    case double: Double => double + " is a double value"
    case "Spark" => "Spark is found" // 进行查找”Spark"
    case string: String => string + " is a String value"
    case _ => "This is a unexpected value"
  }
  println(Str)
} 

也可以添加一些必要处理逻辑

case类

是一种特殊的类,用于模式匹配

case class Car(brand : String,price : Int) {
  
  val myBYDCar = new Car("BYD",89000)
  val myBWMCar = new Car("BMW",1200000)
  val myBenZCar = new Car("Benz",1500000)
  
  for(car <- List(myBWMCar,myBYDCar,myBenZCar)){
    car match {
      case Car("BYD",89000) => {
        println("Hello,PYD!")
      }
      case Car("BMW",1200000) => {
        println("Hello,BMW!")
      }
      case Car(brand, price) => {
        println("Brand:" + brand +",Price:" + price)
      }
    } 
  }

}
posted on 2024-01-20 22:52  实名吓我一跳  阅读(18)  评论(0)    收藏  举报