28.scala编程思想笔记——case类
欢迎转载,转载请标明出处:blog.csdn.net/notbaron/ar…
源码下载连接请见第一篇笔记。\
类机制已经帮我们完成了大量的工作,但是在创建主要用于保存数据的类时,依然有大量的重复代码。Scala会尽可能地消除这种重复性,这正是case类所要做的事情。
定义case类如下:
Caseclass TypeName(arg1:Type,arg2:Type,…)
Case类自动将所有类参数都创建为val.
例如:
import com.atomicscala.AtomicTest._
case class Dog(name:String)
val dog1 = Dog("Henry")
val dog2 = Dog("Cleo")
val dogs = Vector(dog1, dog2)
dogs is Vector(Dog("Henry"),Dog("Cleo"))
case class Cat(name:String, age:Int)
val cats =
Vector(Cat("Miffy", 3), Cat("Rags", 2))
cats is
"Vector(Cat(Miffy,3), Cat(Rags,2))"
与常规类不同,有了case类,我们在创建对象时就不必再使用new关键字了。
在创建Dog和Cat对象时可以看到这种变化。
Case类还提供了了一种不必定义特殊的显示方法就可以以友好且易于阅读的格式打印对象的途径。