`

学习scala笔记--26 类型参数--下边界

 
阅读更多

 

 

 

 

 下边界

 

 

 scala> class Father(val name:String)

defined class Father

 

scala> class Child(name:String) extends Father(name)

defined class Child

 

 

 scala> :paste

// Entering paste mode (ctrl-D to finish)

 

def getIdCard[R >: Child](p :R){

    println(p.getClass)

     if(p.getClass == classOf[Child])  println("please tell us your father's name")

    else if(p.getClass == classOf[Father]) println("pleanse tell us your child's name")

    else  println("sorry  you can't get this Idcard")

}

 

// Exiting paste mode, now interpreting.

 

getIdCard: [R >: Child](p: R)Unit

 

scala> 

 

scala>  val f = new Father("fa")

f: Father = Father@5ec88f9e

 

scala>  val c = new Child("ch")

c: Child = Child@b5d9f1e

 

scala> getIdCard(f)

class $line3.$read$$iw$$iw$Father

pleanse tell us your child's name

 

scala>  getIdCard(c)

class $line4.$read$$iw$$iw$Child

please tell us your father's name

 

scala>  getIdCard("dd")

class java.lang.String

sorry  you can't get this Idcard

 

 

分享到:
评论

相关推荐

    Scala学习笔记(全)

    ### Scala学习笔记(全) #### 一、Scala概述与特点 Scala是一种多范式的编程语言,旨在集成面向对象编程和函数式编程的各种特性。它运行于Java平台(Java虚拟机JVM),并且能够完全兼容所有的Java程序。这使得Scala...

    Scala-学习资料-mht.rar

    在"Scala-学习资料-mht.rar"这个压缩包中,包含了关于Scala的学习资料,格式为MHT(单一文件网页),这种格式通常用于保存完整的网页内容,包括文本、图像和样式表。 首先,我们来了解一下Scala的基础知识。Scala这...

    scala学习笔记整理

    7. **类型系统**:Scala具有复杂的类型系统,包括类型参数化(Generics)、类型推导、类型别名、类型成员、隐式转换等。这些特性使得Scala在编写泛型代码和高级类型操作时具有很高的灵活性。 8. **模式匹配**:...

    Scala学习笔记

    ### Scala学习笔记关键知识点 #### 1. “均码”哲学与并发编程 - **“均码”哲学**: 指的是Scala设计时遵循的一种设计理念,即尽量保持语言的统一性和简洁性,使得不同的功能和特性能够以一种相似的方式进行处理。...

    scala讲解笔记 入门及进阶 PDF文档1-5

    同时,还会涉及类型系统,包括类型推断、类型别名和类型参数化。这部分内容对于提升编程效率和代码质量至关重要。 第四部分:"Scala入门及进阶-part04-Akka Actor.pdf" 专注于Scala与Akka框架的集成,Akka是用于...

    Scala详细总结(精辟版++)

    Scala中的类型系统支持类型参数化,即泛型,允许开发者创建通用的代码。 #### 字符串 Scala支持两种类型的字符串:`String`和`StringBuilder`。`String`是不可变的,而`StringBuilder`则是可变的。此外,Scala还...

    scala学习笔记

    以上内容覆盖了 Scala 编程语言的核心知识点,从基本语法到高级特性,为初学者提供了一个全面的学习指南。Scala 是一门功能强大且灵活的语言,适合于构建大型的、复杂的软件系统。希望这些知识点能够帮助读者更好地...

    scala的操作笔记

    ### Scala的操作笔记 #### 一、课程目标与学习路径 本课程旨在通过三个阶段的目标来逐步深入学习Scala语言,最终能够灵活运用Scala进行Spark程序的开发,并具备阅读Spark内核源码的能力。 - **初级目标**:掌握...

    scala-learn:scala学习笔记

    Scala的类型系统十分强大,包括类型推断、类型参数、隐式转换等特性。深入理解这些内容有助于编写出更加简洁和安全的代码。 9. **Option类型** Option是Scala处理null安全的方式,避免了常见的空指针异常。学会...

    Scala初学者入门课程笔记

    下面是 Scala 初学者入门课程笔记的总结: 环境搭建 在开始学习 Scala 之前,需要先搭建环境。Scala 的官方网站提供了 Scala SDK 的下载地址,可以选择适合自己操作系统的版本。另外,还需要下载 Idea 的 Scala ...

    scala笔记:学习scala时的笔记

    - Scala是强类型语言,变量声明时必须指定类型,但可以使用类型推断简化编写。 - `val`用于声明不可变变量,`var`用于声明可变变量。 - 类型系统包括基本类型(如Int, Double, Boolean)和引用类型(如类、接口)...

    飞翔的小鸟java源码-my-scala-notes:my-scala-notes,因为我必须把它们放在某个地方

    飞翔的小鸟java源码我的Scala笔记 我的 Scala 笔记,因为我需要将它们存储在某个地方... 类型 Scala 程序中的每个变量和表达式都有一个在编译时已知的类型: // a literal value has a type: scala > 1 res0: Int = ...

    flink学习详细笔记

    【标题】:“Flink学习详细笔记” 【描述】:这篇笔记涵盖了Flink的基础概念,包括数据源读取、数据处理算子,特别是时间窗口和CEP算子的讲解,旨在帮助初学者从零开始踏入数据分析领域。 【标签】:“cep 算子” ...

    scala-with-cats:scala with cats一书的笔记,习题

    Scala是一种强大的、面向对象的编程语言,它集成了函数式编程的特点,被广泛应用于大数据处理、分布式计算...通过学习,你可以掌握如何在Scala项目中有效地利用函数式编程的力量,编写出高效、可维护和类型安全的代码。

    scala-impatient-notes

    《Scala 急救手册笔记》 Scala是一种多范式的编程语言,它融合了面向对象和函数式编程的特点,被广泛应用于大数据处理、并发系统以及现代软件开发中。本笔记主要基于《Scala Impatient》这本书,旨在帮助读者快速...

    Scala-Tutorial:Scala语法学习笔记与程式码范例from 韩顺平老师教学

    10. 泛型:支持泛型,允许定义类型参数化的类和方法。例如: ```scala def genericMethod[T](arg: T): T = arg ``` 11. 类型别名:创建新的类型名称,如`type MyInt = Int`。 六、集合库 12. 集合API:Scala提供了...

    Scala_day01_scala_

    下面,我们将深入探讨Scala的一些核心概念和特性。 首先,Scala的基础语法与Java类似,但它提供了更简洁的表达方式。例如,类定义可以使用`class`关键字,但Scala也支持特质(trait),这是一种轻量级的接口实现...

    scala-notes

    "scala-notes"可能是一个关于Scala编程的学习笔记或者教程集合,而"scala-notes-master"可能代表这是该资料的主目录或者最新版本。 在Scala中,你将学习到以下关键概念: 1. **类型系统**:Scala有强大的静态类型...

    spark 笔记、学习笔记、资料

    通过`--master`参数设置集群URL,`--jars`参数添加JAR到类路径,`--packages`参数引入Maven坐标依赖,而`--repositories`参数可以指定额外的Maven仓库地址。 总的来说,Spark 2.1.0提供了一套完整的工具和接口,使...

    Scala笔记Markdown版本(至集合章节)

    总结,本Scala笔记Markdown版本涵盖了从语言基础到集合操作的重要内容,适合初学者入门和有经验的开发者巩固知识。通过学习,开发者将能够掌握Scala的核心特性和编程技巧,从而更好地利用Scala进行后端开发。

Global site tag (gtag.js) - Google Analytics