簡單的來說,Scala的case class就是在普通的類定義前加case這個關(guān)鍵字齿尽,然后你可以對這些類來模式匹配沽损。
case class帶來的最大的好處是它們支持模式識別。
首先循头,回顧一下前面的模式匹配:
var str = "Tom"
str match{
case "Tom" =>println("hello Tom")
case "Mary" =>println("hello Mary")
case _ =>println("others")
}
其次绵估,如果我們想判斷一個對象是否是某個類的對象,跟Java一樣可以使用isInstanceOf ,使用case class 可以比較簡單實(shí)現(xiàn)
/**
* 樣本類,實(shí)現(xiàn)模式匹配
*/
class Vehicle
case class Car(name:String) extends Vehicle
case class Bike(name:String) extends Vehicle
object CaseClass {
def main(args: Array[String]): Unit = {
var aCar : Vehicle = new Car("Tom's car")
var bBike :Vehicle = new Bike("Andy' bike")
aCar match{
case Car(name) =>println("car:"+ name)
case Bike(name) => println("bike:"+name)
case _ => println("其他")
}
bBike match{
case Car(name) =>println("car:"+ name)
case Bike(name) => println("bike:"+name)
case _ => println("其他")
}
}
}
運(yùn)行結(jié)果:
car:Tom's car
bike:Andy' bike