学习了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) } } } }标签:case,val,记录,假期,Car,05,value,double,Spark From: https://www.cnblogs.com/JIANGzihao0222/p/17977289