原创转载请注明出处:http://agilestyle.iteye.com/blog/2334895
标记特征是一种将类或对象组织到一起的方式
package org.fool.scala.traits sealed trait Animal case object Panda extends Animal case object Tiger extends Animal case object Lion extends Animal object Animal { val values = Vector(Panda, Tiger, Lion) } object TaggingTrait extends App { def display(a: Animal) = a match { case Panda => s"It's $a" case Tiger => s"It's $a" case Lion => s"It's $a" } println(Animal.values.map(display)) }
Note:
The hallmark of a tagging trait (Color, in this case) is that it only exists to collect types under a common name, thus it typically has no fields or methods.The sealed keyword on line 4 tells Scala “there are no subtypes of Color other than the ones you see here” (all subtypes of a sealed class must live in the same source file). Scala warns you that a “match may not be exhaustive” if you don’t cover all the cases. e.g.
... object TaggingTrait extends App { def display(a: Animal) = a match { case Panda => s"It's $a" case Tiger => s"It's $a" //case Lion => s"It's $a" } println(Animal.values.map(display)) }
Console Output
Console Output
case对象就像case类一样,只是它产生的是对象而不是类。当case对象转换为String时,将会获得模式匹配的好处以及友好输出。
参考资料:
Scala编程思想
相关推荐
标题中的"hadoop-3.0.0&&spark-2.4.0&&scala-2.13.3&&maven-3.6.3"涵盖了四个重要的IT技术组件:Hadoop 3.0.0、Spark 2.4.0、Scala 2.13.3和Maven 3.6.3。这些组件都是大数据处理和开发领域中的关键工具,下面将详细...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,使得它在处理并发和大规模数据处理时表现出色。本合集包含了关于Scala和Java虚拟机(JVM)的深入学习资源,以及阿里巴巴的Java编程规范,为...
这个压缩包包含了三本关于Scala学习的重要资源,分别是《快学Scala》完整版书籍、《SCALA程序设计-JAVA虚拟机多核编程实战》以及《Scala编程》的中文版。 《快学Scala》完整版书籍是为初学者准备的一份详尽指南,...
scala学习视频资料以及讲义,从基础的环境配置开始讲起,以及后面具体案例开发.适合新手学习,还有具体讲义对照复习查看。
Scala教程&开发.chm 内容是用爬虫爬下来的,整理为chm方便学习.
本教程将深入探讨Scala中的Case Class和模式匹配这两个关键概念,通过实例和源代码帮助你理解和掌握它们。下面是对每个知识点的详细说明。 **Case Class** 在Scala中,Case Class是一种特殊的类,它被设计用于模式...
Chapter 1, Introduction to Scala, will teach big data analytics using ... methods, classes, and objects in Scala; packages and package objects; traits and trait linearization; and Java interoperability.
在Scala中,特征(Traits)是一个非常重要的概念,它提供了一种方式来实现代码重用和接口扩展,类似于Java中的接口和部分C++的混合类型。本讲座主要探讨Scala的特征及其在实际开发中的应用。 特征在Scala中的主要...
- 枚举与case类:Scala中的枚举和case类为模式匹配提供了便利,使代码更简洁、可读性更强。 - 解构:模式匹配允许对复合类型进行解构,提取出内部元素。 7. **特质(Traits)** - 特质是Scala的多重继承机制,...
【Scala与Spark简介】 Scala是一种多范式的编程语言,它结合了面向对象和函数式编程的概念,由瑞士联邦理工学院洛桑(EPFL)的Martin Odersky在2001年创立。Scala的设计目标是提供一种简洁、类型安全且能够表达复杂...
注意是Programming Scala的第二版,而不是Programming in Scala的第二版,更注重于与Spark相关的知识!强烈推荐!Programming Scala- Scalability = Functional Programming + Objects, 2 edition
Scala SDK,全称为Scala Software Development Kit,是用于开发Scala应用程序的核心工具集。Scala是一种多范式的编程语言,融合了面向对象和函数式编程的特点,它运行在Java虚拟机(JVM)上,能够充分利用Java生态...
【techsupport_ext4_scala: 用 Scala、Play2.1 和 ExtJS 4.2 构建的技术支持系统】 这个项目"techsupport_ext4_scala"是一个基于现代Web技术的技术支持平台,它利用了Scala编程语言的强大功能,结合了Play2.1框架的...
Scala3,也被称为Scala 3或Dotty,是Scala编程语言的一个重大更新,旨在提高其简洁性、可读性和类型安全性。Scala3的发布标志着该语言的进一步成熟,它引入了一系列改进,旨在解决早期版本中的一些痛点,同时保持对...
Scala还引入了一些独特的语言特性,如特质(Traits)、隐式转换和case类,这些帮助开发者实现更简洁、更具表达力的代码。 10. 社区与文档: Scala有一个活跃的社区,提供了丰富的开源库和工具,以及详尽的官方...
### Scala与Spark:掌握未来的大数据处理利器 #### Scala初印象及重要性 Scala作为一种集函数式编程与面向对象编程于一体的现代编程语言,其诞生旨在解决传统编程语言(特别是Java)在分布式计算环境下遇到的问题...
Scala是一种强大的多范式编程语言,它融合了面向对象编程和函数式编程的概念,被广泛应用于大数据处理和分布式计算领域,特别是在Apache Spark等框架中。标题提到的"scala-2.12.14.zip&scala-2.12.11.tgz"是Scala的...
- Scala 有更强大的模式匹配,Java 需要使用 switch-case 或者 if-else。 15. **Java 集合与 Scala 集合的转换**: - 导入 `scala.jdk.CollectionConverters`,可以使用 `.asJava` 和 `.asScala` 转换。 16. **...
2. **新特性:Traits**:Scala 的 Traits 提供了一种实现多继承的方式,允许类或者特质组合多个行为。在 2.10.4 版本中,对 Traits 的支持更加完善,包括混合类型检查和优化。 3. **函数式编程强化**:Scala 2.10 ...