scala编程 - 样例类
程序员文章站
2022-06-14 17:09:37
...
样例类在scala中是第一种特殊的类,可用于模式匹配(但在基于版本2.11.8测试中普通的类也能进行模式匹配),case class是多例的,后面需要加参数(无参也要加上括号),case object 是单例的。
import scala.util.Random
abstract class Animal extends flyable {
def print {
printf("This is %s .\n" ,this.getClass.getSimpleName())
}
}
trait flyable {
var flyable: Boolean = false
}
/**
*在Scala中样例类是一中特殊的类,可用于模式匹配。
* case class是多例的,后面要跟构造参数,case object是单例的
*/
case object Cat extends Animal
case class Dog() extends Animal
case class Bird() extends Animal {
flyable = true
}
object CaseClass extends App {
val animalArr = Array[Animal](Cat, new Dog, new Bird)
val animal = animalArr(Random.nextInt(animalArr.length))
animal match {
case Cat =>
Cat.print
case dog: Dog =>
dog.print
//case bird: Bird =>
// 模式匹配中还可以加入条件。
case animal: Animal if (animal.flyable) =>
animal.print
case _ =>
println("Nothing....")
}
}
【来自@若泽大数据】
上一篇: 葡萄酒怎么做,有些东西你不得不知
下一篇: python生成密码字典的方法