`

Scala Case Classes

 
阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/2333272

 

定义一个case类:

case class TypeName(arg1:Type, arg2:Type, ...)

case类会自动将所有类参数都创建为val。

如果需要某个类参数成为var,那么就在该参数前添加一个var。

与常规类不同,有了case类,我们在创建对象时就不必再使用new关键字了。

package org.fool.scala.classes

case class Dog(name: String)

case class Cat(name: String, age: Int)

object CaseClasses extends App {
  val dog1 = Dog("sb1")
  val dog2 = Dog("sb2")
  val dogs = Vector(dog1, dog2)
  println(dog1)
  println(dog2)
  println(dogs)

  val cats = Vector(Cat("kt1", 3), Cat("kt2", 2))
  println(cats)
}

Console Output


 

 

 

  • 大小: 14 KB
分享到:
评论

相关推荐

    shapeless_2.11-2.3.2.zip

    Shapeless提供了对Scala case classes的高级操作支持。通过Shapeless,我们可以动态生成case class的实例,或者将case class转换为HList和其他数据结构,极大地增强了case class的灵活性和可扩展性。 4. **Type ...

    scala for the impatient

    Working with higher-order functions and the powerful Scala collections library * Leveraging Scala's powerful pattern matching and case classes * Creating concurrent programs with Scala actors * ...

    scala教材.docx

    13. **样本类(Case Classes)**:样本类简化了模式匹配,通常用于创建不可变数据结构。它们自动提供了 `equals`, `hashCode`, `toString` 和 `copy` 方法。 14. **异常处理**:Scala 使用 `try-catch-finally` ...

    Scala助手StreamyJ.zip

    StreamyJ 使得用 Jackson 编写 Scala 解析器变的简单了:将 JsonToken 常量转换成 case classes(Scala 的一种模式匹配),并允许类型匹配。 提供了一种机制——允许部分解析器有权对特定的已解析的项目采取措施。 ...

    Scala 专题教程 - Case Class和模式匹配-内含源码以及设计说明书(可以自己运行复现).zip

    本教程将深入探讨Scala中的Case Class和模式匹配这两个关键概念,通过实例和源代码帮助你理解和掌握它们。下面是对每个知识点的详细说明。 **Case Class** 在Scala中,Case Class是一种特殊的类,它被设计用于模式...

    Learning.Scala.Practical.Functional.Programming.for.the.JVM

    Why learn Scala? You don’t need to be a data scientist or distributed computing expert to appreciate this ... Objects, Case Classes and Traits Chapter 10. Advanced Typing Appendix A. Reserved Words

    Scala By Example

    8. **案例类与模式匹配**:案例类(Case Classes)简化了数据结构的定义,而模式匹配是强大的解构工具,能够方便地处理复杂的数据结构。 9. **泛型类型与方法**:泛型允许在编写代码时定义类型参数,增加了代码的...

    scala:scala代码

    7. **Case Classes与Case Objects**:Scala的Case Classes是轻量级的,常用于表示数据,它们与模式匹配结合,提供了简洁的API设计和数据处理方式。 8. **DSL设计**:Scala的语法灵活性使其成为构建领域特定语言...

    Scala编程(完整版)

    以上只是Scala编程的一些基础知识点,深入学习还包括Type Classes、 macros、Dotty(Scala 3)新特性等。如果你想深入了解Scala,阅读《Scala编程-完整版.pdf》这本书将是一个很好的起点。该书会详细讲解Scala的语法...

    scala深入学习

    例如,"Objects and Classes" 部分将会讲解类的定义、单例对象、伴生对象(companion objects)、case类以及模式匹配等概念。 4. 特质(Traits):特质在Scala中扮演着极其重要的角色,它们可以被看作是包含方法和...

    Scala By Examples

    而"Case Classes and Pattern Matching"进一步扩展了这一主题,案类(Case Classes)是Scala中用于数据建模的便利工具,它们与模式匹配结合使用,可以简化数据解析和解构的过程。 "Generic Types and Methods"章节...

    Scala编程 (完整版)带书签目录

    9. **Case Classes**:Scala的case classes是轻量级的模式匹配构造,常用于创建数据容器,同时提供自动的equals、hashCode和toString方法。 10. ** Trait**:Traits是Scala中的一个独特特性,类似Java的接口,但...

    scala pattern match

    1. **案例类(Case Classes)**:这是Scala中一种特殊的类,主要用于模式匹配。它们自动实现了`equals`和`hashCode`方法,以及`toString`方法,非常适合用作模式匹配中的模式。 2. **提取器(Extractors)**:在...

    scala编程中文版

    4. **模式匹配**:Scala中的模式匹配允许开发者以简洁的方式处理数据结构和解构对象,常用于案例类(Case Classes)和阿尔法匹配。 5. ** Actors模型**:Scala内置了Akka库,支持Actor模型,这是一种并发编程模型,...

    Scala编程(中文版)

    案例类(Case Classes)是Scala中的一个独特特性,它们简化了创建和操作数据结构的过程。案例类不仅提供自动实现的equals()、hashCode()和toString()方法,还支持模式匹配,使得数据处理更加简洁。 Scala的类型系统...

    Programming in Scala, 2nd Edition

    The copy method on case classes This and book is completed and currently in production. The paper book will be available in early January, 2011. The final PDF eBook is available now. You can currently...

    scala设计模式

    例如,Scala中的case classes和case objects能够很自然地实现单例模式,而无需额外的工厂模式来创建对象实例。 文章重点介绍了几种经典的设计模式以及在Scala中的实现方式: 1. 工厂方法模式:这种模式通过将对象...

    scala-2.11.12.msi 安装程序

    8. **语法糖**:Scala的语法糖特性使得编写代码更加简洁,如for-comprehensions(用于迭代和集合操作)和case classes(用于模式匹配)。 9. **与Java兼容**:Scala运行在Java虚拟机(JVM)上,可以无缝与Java库...

    Programming in Scala

    15. **Case Classes and Pattern Matching(案例类与模式匹配)**: - 案例类(case classes)的特点及其应用场景。 - 模式匹配(pattern matching)的原理及如何应用于解构数据结构。 - 实际案例分析,展示如何高效...

Global site tag (gtag.js) - Google Analytics